var n,m,i,j,k,p,q,ii,nn:longint;x:string;
    f:array[0..101,0..101] of longint;
    ch:array[0..101,0..101] of char;
procedure s(x:longint);
var i,j:longint;
 begin
  if x>n*m then begin writeln('-1');exit;end;
  for i:=1 to n do
   for j:=1 to m do
    begin
     if f[i,j]=x then
      begin
       if ch[i-1,j]='-' then f[i-1,j]:=f[i,j]+1;
       if ch[i+1,j]='-' then f[i+1,j]:=f[i,j]+1;
       if ch[i,j-1]='-' then f[i,j-1]:=f[i,j]+1;
       if ch[i,j+1]='-' then f[i,j+1]:=f[i,j]+1;
      end;
    end;
  if f[p,q]<>0 then writeln(f[p,q]-1) else s(x+1);
 end;
begin
 readln(nn);
 for ii:=1 to nn do
 begin
 readln(n,m);
 fillchar(f,sizeof(f),0);
 for i:=1 to n do
  begin
   readln(x);
   for j:=1 to m do
    begin
     ch[i,j]:=x[j];
     if ch[i,j]='E' then begin ch[i,j]:='-'; p:=i; q:=j; end;
     if ch[i,j]='S' then f[i,j]:=1;
    end;
  end;s(1);
 end;
end.
/**************************************************************
	Problem: 2125
	User: admin
	Language: Pascal
	Result: Wrong Answer
****************************************************************/