#include <stdio.h>
#include <iostream>
#include <cmath>
#include <algorithm>
#include <vector>
#include <bits/stdc++.h> //include every c++ library
//fgets(array_name,array_size,stdin);
//FLT_MAX FLT_MIN INT_MAX INT_MIN DBL_MAX DBL_MIN
#define mod 1000000007
#define ll long long int
using namespace std;
struct point
{
ll val;
ll X;
ll Y;
};
bool operator<(point const& n1, point const& n2)
{
return n1.val<n2.val;
}
ll A[105][105],B[105][105];
/*void check(ll A[], ll N)
{
ll i;
for(i=0; i<N; i++)
printf("%lld ",A[i]);
printf("\n");
}*/
int main()
{
ll T;
scanf("%lld",&T);
while(T--)
{
ll N,M, X,Y,H,i, j, ans = 0;
scanf("%lld%lld%lld%lld%lld",&M,&N,&X,&Y,&H);
memset(B,0,sizeof(B));
for(i=1; i<=M; i++)
for(j=1; j<=N; j++)
scanf("%lld",&A[i][j]);
priority_queue <point>C;
point p,q;
p.val = 0;
p.X = 1;
p.Y = 1;
for(i=0; i<=M; i++)
{
B[i][0] = 1;
B[i][N+1] = 1;
}
for(i=0; i<=N; i++)
{
B[0][i] = 1;
B[M+1][i] = 1;
}
B[M+1][N+1] = 1;
B[1][1] = 1;
C.push(p);
ll flag=0;
while (!C.empty() && !flag)
{
q = C.top();
C.pop();
if(q.X == X && q.Y == Y)
{
if(q.val == 0)
printf("0\n");
else
printf("%lld\n",q.val-1);
flag = 1;
}
if(!flag)
{
if(B[q.X +1][q.Y]==0 && abs(A[q.X+1][q.Y] - A[q.X ][q.Y])<=H)
{
B[q.X +1][q.Y] = 1;
p.val = q.val + 1;
p.X = q.X + 1;
p.Y = q.Y;
C.push(p);
}
if(B[q.X -1][q.Y]==0 && abs(A[q.X-1][q.Y] - A[q.X ][q.Y])<=H)
{
B[q.X -1][q.Y] = 1;
p.val = q.val + 1;
p.X = q.X - 1;
p.Y = q.Y;
C.push(p);
}if(B[q.X ][q.Y+1]==0 && abs(A[q.X][q.Y+1] - A[q.X ][q.Y])<=H)
{
B[q.X][q.Y+1] = 1;
p.val = q.val + 1;
p.X = q.X ;
p.Y = q.Y+1;
C.push(p);
}if(B[q.X][q.Y-1]==0 && abs(A[q.X][q.Y-1] - A[q.X][q.Y])<=H)
{
B[q.X][q.Y-1] = 1;
p.val = q.val + 1;
p.X = q.X ;
p.Y = q.Y-1;
C.push(p);
}
}
}
// dp(0,0,X-1,Y-1,H,M,N);
if(!flag)
printf("-1\n");
/* for(i=0; i<=M; i++)
{
for(j=0;j<=N;j++)
printf("%lld ",B[i][j]);
printf("\n");
}
*/ }
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxpb3N0cmVhbT4KI2luY2x1ZGUgPGNtYXRoPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8Yml0cy9zdGRjKysuaD4gICAgICAgIC8vaW5jbHVkZSBldmVyeSBjKysgbGlicmFyeQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vZmdldHMoYXJyYXlfbmFtZSxhcnJheV9zaXplLHN0ZGluKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL0ZMVF9NQVggRkxUX01JTiBJTlRfTUFYIElOVF9NSU4gREJMX01BWCBEQkxfTUlOCiNkZWZpbmUgbW9kIDEwMDAwMDAwMDcKI2RlZmluZSBsbCBsb25nIGxvbmcgaW50CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpzdHJ1Y3QgcG9pbnQKewogICAgIGxsIHZhbDsKICAgICBsbCBYOwogICAgIGxsIFk7Cn07Cgpib29sIG9wZXJhdG9yPChwb2ludCBjb25zdCYgbjEsIHBvaW50IGNvbnN0JiBuMikKewogICAgcmV0dXJuIG4xLnZhbDxuMi52YWw7Cn0KCmxsIEFbMTA1XVsxMDVdLEJbMTA1XVsxMDVdOwoKLyp2b2lkIGNoZWNrKGxsIEFbXSwgbGwgTikKewogICAgbGwgaTsKICAgIGZvcihpPTA7IGk8TjsgaSsrKQogICAgICAgIHByaW50ZigiJWxsZCAiLEFbaV0pOwogICAgcHJpbnRmKCJcbiIpOwp9Ki8KaW50IG1haW4oKQp7CiAgICBsbCBUOwogICAgc2NhbmYoIiVsbGQiLCZUKTsKICAgIHdoaWxlKFQtLSkKICAgIHsKICAgICAgICBsbCBOLE0sIFgsWSxILGksIGosIGFucyA9IDA7CiAgICAgICAgc2NhbmYoIiVsbGQlbGxkJWxsZCVsbGQlbGxkIiwmTSwmTiwmWCwmWSwmSCk7CiAgICAgICAgbWVtc2V0KEIsMCxzaXplb2YoQikpOwogICAgICAgIGZvcihpPTE7IGk8PU07IGkrKykKICAgICAgICAgICAgZm9yKGo9MTsgajw9TjsgaisrKQogICAgICAgICAgICBzY2FuZigiJWxsZCIsJkFbaV1bal0pOwogICAgICAgIHByaW9yaXR5X3F1ZXVlIDxwb2ludD5DOwogICAgICAgIHBvaW50IHAscTsKICAgICAgICBwLnZhbCA9IDA7CiAgICAgICAgcC5YID0gMTsKICAgICAgICBwLlkgPSAxOwogICAgICAgIGZvcihpPTA7IGk8PU07IGkrKykKICAgICAgICB7CiAgICAgICAgICAgIEJbaV1bMF0gPSAxOwogICAgICAgICAgICBCW2ldW04rMV0gPSAxOwogICAgICAgIH0KICAgICAgICBmb3IoaT0wOyBpPD1OOyBpKyspCiAgICAgICAgewogICAgICAgICAgICBCWzBdW2ldID0gMTsKICAgICAgICAgICAgQltNKzFdW2ldID0gMTsKICAgICAgICB9CiAgICAgICAgQltNKzFdW04rMV0gPSAxOwoKICAgICAgICBCWzFdWzFdID0gMTsKICAgICAgICBDLnB1c2gocCk7CiAgICAgICAgbGwgZmxhZz0wOwogICAgICAgIHdoaWxlICghQy5lbXB0eSgpICYmICFmbGFnKQogICAgICAgIHsKICAgICAgICAgICAgcSA9IEMudG9wKCk7CiAgICAgICAgICAgIEMucG9wKCk7CiAgICAgICAgICAgIGlmKHEuWCA9PSBYICYmIHEuWSA9PSBZKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpZihxLnZhbCA9PSAwKQogICAgICAgICAgICAgICAgICAgIHByaW50ZigiMFxuIik7CiAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICBwcmludGYoIiVsbGRcbiIscS52YWwtMSk7CiAgICAgICAgICAgICAgICBmbGFnID0gMTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZighZmxhZykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWYoQltxLlggKzFdW3EuWV09PTAgJiYgYWJzKEFbcS5YKzFdW3EuWV0gLSBBW3EuWCBdW3EuWV0pPD1IKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEJbcS5YICsxXVtxLlldID0gMTsKICAgICAgICAgICAgICAgICAgICBwLnZhbCA9IHEudmFsICsgMTsKICAgICAgICAgICAgICAgICAgICBwLlggPSBxLlggKyAxOwogICAgICAgICAgICAgICAgICAgIHAuWSA9IHEuWTsKICAgICAgICAgICAgICAgICAgICBDLnB1c2gocCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZihCW3EuWCAtMV1bcS5ZXT09MCAmJiBhYnMoQVtxLlgtMV1bcS5ZXSAtIEFbcS5YIF1bcS5ZXSk8PUgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQltxLlggLTFdW3EuWV0gPSAxOwogICAgICAgICAgICAgICAgICAgIHAudmFsID0gcS52YWwgKyAxOwogICAgICAgICAgICAgICAgICAgIHAuWCA9IHEuWCAtIDE7CiAgICAgICAgICAgICAgICAgICAgcC5ZID0gcS5ZOwogICAgICAgICAgICAgICAgICAgIEMucHVzaChwKTsKICAgICAgICAgICAgICAgIH1pZihCW3EuWCBdW3EuWSsxXT09MCAmJiBhYnMoQVtxLlhdW3EuWSsxXSAtIEFbcS5YIF1bcS5ZXSk8PUgpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQltxLlhdW3EuWSsxXSA9IDE7CiAgICAgICAgICAgICAgICAgICAgcC52YWwgPSBxLnZhbCArIDE7CiAgICAgICAgICAgICAgICAgICAgcC5YID0gcS5YIDsKICAgICAgICAgICAgICAgICAgICBwLlkgPSBxLlkrMTsKICAgICAgICAgICAgICAgICAgICBDLnB1c2gocCk7CiAgICAgICAgICAgICAgICB9aWYoQltxLlhdW3EuWS0xXT09MCAmJiBhYnMoQVtxLlhdW3EuWS0xXSAtIEFbcS5YXVtxLlldKTw9SCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBCW3EuWF1bcS5ZLTFdID0gMTsKICAgICAgICAgICAgICAgICAgICBwLnZhbCA9IHEudmFsICsgMTsKICAgICAgICAgICAgICAgICAgICBwLlggPSBxLlggOwogICAgICAgICAgICAgICAgICAgIHAuWSA9IHEuWS0xOwogICAgICAgICAgICAgICAgICAgIEMucHVzaChwKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgIC8vIGRwKDAsMCxYLTEsWS0xLEgsTSxOKTsKICAgICAgICBpZighZmxhZykKICAgICAgICAgICAgcHJpbnRmKCItMVxuIik7CiAgICAgLyogICBmb3IoaT0wOyBpPD1NOyBpKyspCiAgICAgICAgewogICAgICAgIGZvcihqPTA7ajw9TjtqKyspCiAgICAgICAgICAgIHByaW50ZigiJWxsZCAiLEJbaV1bal0pOwogICAgICAgICAgICBwcmludGYoIlxuIik7CiAgICAgICAgfQoqLyAgICB9CgogICAgcmV0dXJuIDA7Cn0K