#include <bits/stdc++.h>
using namespace std ;
int n , m , x, y , d , test ;
int b[111][111];
map < pair < int , int > , int > id ;
void pre(){
id.clear() ;
int c = 1 ;
for( int i = 1 ; i <= n ; i++)
for ( int j = 1 ; j <= m ; j++)
id[ make_pair( i , j )] = c++ ;
}
int dr[] = { -1,0,1,0} ;
int dc[] = { 0 ,1, 0, -1} ;
bool valid ( int i , int j){
return ( i >= 1 && i <= n && j >= 1 && j <= m );
}
vector < int > adj [11111] ;
int dis [11111] ;
int main(){
pre() ;
int i , j, k, l;
cin >> test ;
while ( test-- ){
cin >> n >> m >> x >> y >> d ;
pre() ;
for( i = 1 ; i <= n ; i++)
for( j = 1 ; j <= m ; j++)
cin >> b [i][j] ;
if( x == 1 && y == 1){
cout <<"0\n" ; continue;
}
for ( i = 0 ; i <= 11000 ; i++)
adj[i].clear() ;
memset ( dis, -1, sizeof dis) ;
for ( i = 1 ; i <= n ; i++)
for ( j = 1 ; j <= m ; j++ ){
for ( k = 0 ; k < 4 ; k++){
int tr = i + dr[k] ; int tc = j + dc[k] ;
if( valid( tr,tc))
if( abs( b[tr][tc] - b[i][j]) <= d){
adj[ id [ make_pair(i,j)]].push_back ( id[ make_pair( tr,tc) ] ) ;
}
}
}
/*
for ( i = 1 ; i <= n*m ; i++ ){
cout << i <<" ";
for( j = 0 ; j < adj[i].size() ; j++)
cout <<" "<<adj[i][j] ;
cout << endl;
}
*/
queue < int > q ;
dis[ id[ make_pair(1,1)] ] = 0;
q.push( id[ make_pair(1,1)] ) ;
while ( !q.empty() ){
int u = q.front() ; q.pop() ;
// cout <<"front " << u << endl;
for ( i = 0 ; i < adj[u].size() ; i++)
if( dis[ adj[u][i]] == -1)
{ // cout <<"o\n" ;
dis[ adj[u][i]] = dis[u] + 1 ;
q.push( adj[u][i] );
}
}
// for ( i = 1 ; i <= n*m ; i++){
// cout << i <<" "<<dis[i]<<endl;
// }
if( dis[ id[ make_pair(x,y)] ] != -1)
cout << dis[ id[ make_pair(x,y)] ] - 1 << endl;
else
cout <<"-1\n" ;
}
return 0 ;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQgOwoKCmludCBuICwgbSAsIHgsIHkgLCBkICwgdGVzdCA7CmludCBiWzExMV1bMTExXTsKbWFwIDwgcGFpciA8IGludCAsIGludCA+ICwgaW50ID4gaWQgOwp2b2lkIHByZSgpewogaWQuY2xlYXIoKSA7CiBpbnQgYyA9IDEgOwogZm9yKCBpbnQgaSA9IDEgOyBpIDw9IG4gOyBpKyspCiBmb3IgKCBpbnQgaiA9IDEgOyBqIDw9IG0gOyBqKyspCiBpZFsgbWFrZV9wYWlyKCBpICwgaiApXSA9IGMrKyA7Cgp9CmludCBkcltdID0geyAtMSwwLDEsMH0gOwppbnQgZGNbXSA9IHsgMCAsMSwgMCwgLTF9IDsKYm9vbCB2YWxpZCAoIGludCBpICwgaW50IGopewogIHJldHVybiAgKCBpID49IDEgJiYgaSA8PSBuICYmIGogPj0gMSAmJiBqIDw9IG0gKTsKfQp2ZWN0b3IgPCBpbnQgPiBhZGogWzExMTExXSA7CmludCBkaXMgWzExMTExXSA7CgoKCmludCBtYWluKCl7CnByZSgpIDsKaW50IGkgLCBqLCBrLCBsOwpjaW4gPj4gdGVzdCA7CndoaWxlICggdGVzdC0tICl7CgogICAgIGNpbiA+PiBuID4+IG0gPj4geCA+PiB5ID4+IGQgOwogICAgIHByZSgpIDsKICAgICBmb3IoIGkgPSAxIDsgaSA8PSBuIDsgaSsrKQogICAgICAgIGZvciggaiA9IDEgOyBqIDw9IG0gOyBqKyspCiAgICAgICAgY2luID4+IGIgW2ldW2pdIDsKCiAgICAgaWYoIHggPT0gMSAmJiB5ID09IDEpewogICAgICAgIGNvdXQgPDwiMFxuIiA7IGNvbnRpbnVlOwoKICAgICB9CgogICAgIGZvciAoIGkgPSAwIDsgaSA8PSAxMTAwMCA7IGkrKykKICAgICBhZGpbaV0uY2xlYXIoKSA7CgogICAgIG1lbXNldCAoIGRpcywgLTEsIHNpemVvZiBkaXMpIDsKICAgICBmb3IgKCBpID0gMSA7IGkgPD0gbiAgOyBpKyspCiAgICAgZm9yICggaiA9IDEgOyBqIDw9IG0gOyBqKysgKXsKCiAgICAgICAgICAgZm9yICggayA9IDAgOyBrIDwgNCA7IGsrKyl7CiAgICAgICAgICAgICAgIGludCB0ciA9IGkgKyBkcltrXSA7IGludCB0YyA9IGogKyBkY1trXSA7CiAgICAgICAgICAgICAgIGlmKCB2YWxpZCggdHIsdGMpKQogICAgICAgICAgICAgICBpZiggYWJzKCBiW3RyXVt0Y10gLSBiW2ldW2pdKSA8PSBkKXsKICAgICAgICAgICAgICAgICAgYWRqWyBpZCBbIG1ha2VfcGFpcihpLGopXV0ucHVzaF9iYWNrICggaWRbIG1ha2VfcGFpciggdHIsdGMpIF0gKSA7CiAgICAgICAgICAgICAgIH0KICAgICAgICAgICB9CiAgICAgfQogICAgIC8qCiAgICAgZm9yICggaSA9IDEgOyBpIDw9IG4qbSA7IGkrKyApewogICAgICAgICBjb3V0IDw8IGkgPDwiICI7CiAgICAgICAgIGZvciggaiA9IDAgOyBqIDwgYWRqW2ldLnNpemUoKSA7IGorKykKICAgICAgICAgY291dCA8PCIgIjw8YWRqW2ldW2pdIDsKICAgICAgICAgY291dCA8PCBlbmRsOwogICAgIH0KKi8KCiAgICAgcXVldWUgPCBpbnQgPiBxIDsKICAgICBkaXNbIGlkWyBtYWtlX3BhaXIoMSwxKV0gXSA9IDA7CiAgICAgcS5wdXNoKCBpZFsgbWFrZV9wYWlyKDEsMSldICkgOwogICAgIHdoaWxlICggIXEuZW1wdHkoKSApewogICAgICAgICBpbnQgdSA9IHEuZnJvbnQoKSA7IHEucG9wKCkgOwogICAvLyAgICAgIGNvdXQgPDwiZnJvbnQgIiA8PCB1IDw8IGVuZGw7CiAgICAgICAgIGZvciAoIGkgPSAwIDsgaSA8IGFkalt1XS5zaXplKCkgOyBpKyspCiAgICAgICAgIGlmKCBkaXNbIGFkalt1XVtpXV0gID09IC0xKQogICAgICAgICB7IC8vICBjb3V0IDw8Im9cbiIgOwogICAgICAgICAgICAgZGlzWyBhZGpbdV1baV1dID0gZGlzW3VdICsgMSA7CiAgICAgICAgICAgICBxLnB1c2goIGFkalt1XVtpXSApOwogICAgICAgICB9CiAgICAgfQoKIC8vICAgIGZvciAoIGkgPSAxIDsgaSA8PSBuKm0gOyBpKyspewogLy8gICAgICAgY291dCA8PCBpIDw8IiAiPDxkaXNbaV08PGVuZGw7CiAvLyAgICB9CiAgICAgaWYoIGRpc1sgaWRbIG1ha2VfcGFpcih4LHkpXSBdICE9IC0xKQogICAgICAgIGNvdXQgPDwgZGlzWyBpZFsgbWFrZV9wYWlyKHgseSldIF0gLSAxIDw8IGVuZGw7CiAgICAgZWxzZQogICAgICAgIGNvdXQgPDwiLTFcbiIgOwoKfQoKCgoKcmV0dXJuICAwIDsKfQoKCgoKCg==