#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
****************************************************************/