#include<stdio.h>
int main(void)
{
int k,x;
scanf("%d",&x);
for(k=1;k<=x;k++)
{int i,j,m,n,w,i1,i2,i3,j1,j2,j3,f=0,r=1;
char mg[105][105];
int zg[105][105],ins[105][105],tx[4]={0,1,0,-1},ty[4]={1,0,-1,0},q[10005];
scanf("%d%d",&n,&m);
getchar();
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
scanf("%c",&mg[i][j]);
getchar();}
for(i=0;i<n;i++)
for(j=0;j<m;j++)
{
zg[i][j]=0;
ins[i][j]=0;
if(mg[i][j]=='S') {i1=i;j1=j;}
}
q[f]=i1*m+j1;
zg[i1][j1]=1;
while(f<r)
{w=q[f];
i2=w/m;j2=w%m;
f++;
for(i=0;i<4;i++)
{
i3=i2+tx[i];j3=j2+ty[i];
if(i3>=0&&i3<n&&j3>=0&&j3<m&&(mg[i3][j3]!='#')&&(!zg[i3][j3]))
{zg[i3][j3]=1;
ins[i3][j3]=ins[i2][j2]+1;
q[r]=i3*m+j3;
r++;
}
}
}
for(i=0;i<n;i++)
for(j=0;j<m;j++)
if(mg[i][j]=='E') if(ins[i][j]!=0) printf("%d\n",ins[i][j]);
else printf("-1\n");
}
return 0;
}
/**************************************************************
Problem: 2125
User: admin
Language: C
Result: Accepted
Time:16 ms
Memory:1160 kb
****************************************************************/