#include <bits/stdc++.h>
using namespace std;
char a[205][205];
int s[205][205];
int n,h,w;
bool flag = false,vis[205][205];
int dx[4] = {1,-1,0,0},dy[4] = {0,0,1,-1};
inline void dfs(int x,int y,int e){
if (flag) return;
if (a[x][y] == 'T') {
flag = true;
return;
}
for (int i = 0; i < 4; i++) {
int sx = x + dx[i],sy = y + dy[i];
if (sx >= 1 && sx <= h && sy >= 1 && sy <= w
&& a[sx][sy] != '#' && !vis[sx][sy] && !(e == 0 && s[x][y] == 0)) {
vis[sx][sy] = true;
if (s[x][y] != 0) dfs(sx,sy,max(s[x][y],e) - 1);
else dfs(sx,sy,e - 1);
vis[sx][sy] = false;
}
}
return;
}
int main(){
scanf("%d%d",&h,&w);
for (int i = 1; i <= h; i++) scanf("%s",a[i] + 1);
scanf("%d",&n);
for (int i = 1; i <= n; i++) {
int x,y,e;
scanf("%d%d%d",&x,&y,&e);
s[x][y] = e;
}
for (int i = 1; i <= h; i++)
for (int j = 1; j <= w; j++)
if (a[i][j] == 'S') {
vis[i][j] = true;
dfs(i,j,0);
break;
}
if (flag) printf("Yes");
else printf("No");
return 0;
}
就过不去,救救我吧