#include <bits/stdc++.h>
using namespace std;
int grid[6][6];
int recursive_path(int r1,int c1,int r2,int c2,int row,int col) {
// cout<<r1<<' '<<c1<<" t\n";
if(r1<0 || c1<0 || r1>=row || c1>=col) {
return -10000;
}
if(grid[r1][c1]==1) {
return -10000;
}
if(r1==r2 && c1==c2) {
return 0;
}
grid[r1][c1]=1;
int currmax=-10000;
currmax=max(currmax,recursive_path(r1+1,c1,r2,c2,row,col));
currmax=max(currmax,recursive_path(r1-1,c1,r2,c2,row,col));
currmax=max(currmax,recursive_path(r1,c1+1,r2,c2,row,col));
currmax=max(currmax,recursive_path(r1,c1-1,r2,c2,row,col));
grid[r1][c1]=0;
return 1+currmax;
}
int main()
{
int t;
cin>>t;
while(t--) {
int row,col;
cin>>row>>col;
int r1,c1,r2,c2;
cin>>r1>>c1>>r2>>c2;
string mat[row];
for(int i=0;i<row;i++) {
cin>>mat[i];
for(int j=0;j<col;j++) {
if(mat[i][j]=='#') {
grid[i][j]=1;
} else {
grid[i][j]=0;
}
}
}
int val=recursive_path(r1,c1,r2,c2,row,col);
if(val<0) {
cout<<"-1\n";
} else {
cout<<val<<'\n';
}
// t=0;
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwppbnQgZ3JpZFs2XVs2XTsKCmludCByZWN1cnNpdmVfcGF0aChpbnQgcjEsaW50IGMxLGludCByMixpbnQgYzIsaW50IHJvdyxpbnQgY29sKSB7CgkvLyBjb3V0PDxyMTw8JyAnPDxjMTw8IiB0XG4iOwoJaWYocjE8MCB8fCBjMTwwIHx8IHIxPj1yb3cgfHwgYzE+PWNvbCkgewoJCXJldHVybiAtMTAwMDA7Cgl9CglpZihncmlkW3IxXVtjMV09PTEpIHsKCQlyZXR1cm4gLTEwMDAwOwoJfQoJaWYocjE9PXIyICYmIGMxPT1jMikgewoJCXJldHVybiAwOwoJfQoJZ3JpZFtyMV1bYzFdPTE7CglpbnQgY3Vycm1heD0tMTAwMDA7CgljdXJybWF4PW1heChjdXJybWF4LHJlY3Vyc2l2ZV9wYXRoKHIxKzEsYzEscjIsYzIscm93LGNvbCkpOwoJY3Vycm1heD1tYXgoY3Vycm1heCxyZWN1cnNpdmVfcGF0aChyMS0xLGMxLHIyLGMyLHJvdyxjb2wpKTsKCWN1cnJtYXg9bWF4KGN1cnJtYXgscmVjdXJzaXZlX3BhdGgocjEsYzErMSxyMixjMixyb3csY29sKSk7CgljdXJybWF4PW1heChjdXJybWF4LHJlY3Vyc2l2ZV9wYXRoKHIxLGMxLTEscjIsYzIscm93LGNvbCkpOwoJZ3JpZFtyMV1bYzFdPTA7CglyZXR1cm4gMStjdXJybWF4Owp9CgppbnQgbWFpbigpCnsKCWludCB0OwoJY2luPj50OwoJd2hpbGUodC0tKSB7CgkJaW50IHJvdyxjb2w7CgkJY2luPj5yb3c+PmNvbDsKCQlpbnQgcjEsYzEscjIsYzI7CgkJY2luPj5yMT4+YzE+PnIyPj5jMjsKCQlzdHJpbmcgbWF0W3Jvd107CgkJZm9yKGludCBpPTA7aTxyb3c7aSsrKSB7CgkJCWNpbj4+bWF0W2ldOwoJCQlmb3IoaW50IGo9MDtqPGNvbDtqKyspIHsKCQkJCWlmKG1hdFtpXVtqXT09JyMnKSB7CgoJCQkJCWdyaWRbaV1bal09MTsKCQkJCX0gZWxzZSB7CgkJCQkJZ3JpZFtpXVtqXT0wOwoJCQkJfQoJCQl9CgkJfQoJCWludCB2YWw9cmVjdXJzaXZlX3BhdGgocjEsYzEscjIsYzIscm93LGNvbCk7CgkJaWYodmFsPDApIHsKCQkJY291dDw8Ii0xXG4iOwoJCX0gZWxzZSB7CgkJCWNvdXQ8PHZhbDw8J1xuJzsKCQl9CgkJLy8gdD0wOwoJfQoJcmV0dXJuIDA7Cn0=