#include<bits/stdc++.h>
using namespace std;
int t,n,m,c,fx,fy,sx,sy,zx[4][2]={{0,1},{1,0},{-1,0},{0,-1}};
bool flag,vis[10][10];
char cc,map_[10][10];
void dfs(int xx,int yy,int cnt){
if(xxsx&&yysy&&cnt==c){flag=1;}
if(cnt+abs(xx-sx)+abs(yy-sy)>c){return ;}
for(int i=0;i<4;i++){
int xxx=xx+zx[i][0],yyy=yy+zx[i][1];
if(vis[xxx][yyy]==0&&map_[xxx][yyy]!='X'&& xxx>=0&&xxx<n && yyy>=0&&yyy<m){
vis[xxx][yyy]=1;
dfs(xxx,yyy,cnt+1);
vis[xxx][yyy]=0;
}
}
}
int main(){
scanf("%d",&t);;
while(t--){
scanf("%d %d %d",&n,&m,&c);
for(int i=0;i<n;i++) for(int j=0;j<m;j++){
cin>>map_[i][j];
if(map_[i][j]'S'){fx=i;fy=j;}
if(map_[i][j]'T'){sx=i;sy=j;}
}
if((abs(sx-fx)+abs(sy-fy))%2!=c%2){cout<<"NO\n";continue;}
memset(vis,0,sizeof vis);
flag=0;
dfs(fx,fy,0);
if(flag) cout<<"YES"<<endl;
else cout<<"NO"<<endl;
}
}