#include <iostream>
#include <vector>
#include <deque>
//#include <fstream>
using namespace std;
class Step {
public:
int i;
int j;
int lifes;
Step(int i, int j, int lifes) {
this->i = i;
this->j = j;
this->lifes = lifes;
}
};
typedef vector< vector<char> > Map;
typedef deque<Step*> Steps;
void printMap(Map& m, int h, int w) {
int i, j;
cout << endl << endl;
for (i=0; i<=h; i++) {
for (j=0; j<=w; j++) {
cout << m[i][j];
}
cout << endl;
}
cout << endl << endl;
}
bool mario(Map& m, Steps& s) {
int i, j, lifes;
while (!s.empty()) {
Step *p = s.front();
s.pop_front();
lifes = p->lifes;
if (lifes < 0)
return false;
i = p->i;
j = p->j;
if (m[i][j] == 'x')
continue;
if (m[i][j] == 'T')
return true;
m[i][j] = 'x';
lifes--;
s.push_back(new Step(i-1, j, lifes));
s.push_back(new Step(i, j+1, lifes));
s.push_back(new Step(i+1, j, lifes));
s.push_back(new Step(i, j-1, lifes));
}
return false;
}
int main() {
//ifstream cin("in.txt");
int h, w;
cin >> h >> w;
Map matrix(h+2, vector<char>(w+2));
int i, j;
int x, y;
for (i=1; i<=h; i++) {
for (j=1; j<=w; j++) {
cin >> matrix[i][j];
if (matrix[i][j] == 'S') {
x = i;
y = j;
}
}
matrix[i][0] = 'x';
matrix[i][j] = 'x';
}
for (j=1; j<=w; j++) {
matrix[0][j] = 'x';
matrix[i][j] = 'x';
}
int lifes;
cin >> lifes;
Steps s;
s.push_back(new Step(x, y, lifes*4));
if (mario(matrix, s))
cout << "YES\n";
else
cout << "NO\n";
//printMap(matrix, i, j);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8ZGVxdWU+Ci8vI2luY2x1ZGUgPGZzdHJlYW0+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpjbGFzcyBTdGVwIHsKICAgIHB1YmxpYzoKICAgIGludCBpOwogICAgaW50IGo7CiAgICBpbnQgbGlmZXM7CgogICAgU3RlcChpbnQgaSwgaW50IGosIGludCBsaWZlcykgewogICAgICAgIHRoaXMtPmkgPSBpOwogICAgICAgIHRoaXMtPmogPSBqOwogICAgICAgIHRoaXMtPmxpZmVzID0gbGlmZXM7CiAgICB9Cn07Cgp0eXBlZGVmIHZlY3RvcjwgdmVjdG9yPGNoYXI+ID4gTWFwOwp0eXBlZGVmIGRlcXVlPFN0ZXAqPiBTdGVwczsKCnZvaWQgcHJpbnRNYXAoTWFwJiBtLCBpbnQgaCwgaW50IHcpIHsKICAgIGludCBpLCBqOwogICAgY291dCA8PCBlbmRsIDw8IGVuZGw7CgogICAgZm9yIChpPTA7IGk8PWg7IGkrKykgewogICAgICAgIGZvciAoaj0wOyBqPD13OyBqKyspIHsKICAgICAgICAgICAgY291dCA8PCBtW2ldW2pdOwogICAgICAgIH0KICAgICAgICBjb3V0IDw8IGVuZGw7CiAgICB9CiAgICBjb3V0IDw8IGVuZGwgPDwgZW5kbDsKfQoKYm9vbCBtYXJpbyhNYXAmIG0sIFN0ZXBzJiBzKSB7CglpbnQgaSwgaiwgbGlmZXM7CgkKCXdoaWxlICghcy5lbXB0eSgpKSB7CgkJU3RlcCAqcCA9IHMuZnJvbnQoKTsKCSAgICBzLnBvcF9mcm9udCgpOwoJICAgIAoJICAgIGxpZmVzID0gcC0+bGlmZXM7CgkgICAgaWYgKGxpZmVzIDwgMCkKCSAgICAgICAgcmV0dXJuIGZhbHNlOwoJCgkgICAgaSA9IHAtPmk7CgkgICAgaiA9IHAtPmo7CgkKCSAgICBpZiAobVtpXVtqXSA9PSAneCcpCgkgICAgICAgIGNvbnRpbnVlOwoJICAgIAoJICAgIGlmIChtW2ldW2pdID09ICdUJykgCgkJCXJldHVybiB0cnVlOwoJCQoJICAgIG1baV1bal0gPSAneCc7CgkgICAgbGlmZXMtLTsKCSAgICBzLnB1c2hfYmFjayhuZXcgU3RlcChpLTEsIGosIGxpZmVzKSk7CgkgICAgcy5wdXNoX2JhY2sobmV3IFN0ZXAoaSwgaisxLCBsaWZlcykpOwoJICAgIHMucHVzaF9iYWNrKG5ldyBTdGVwKGkrMSwgaiwgbGlmZXMpKTsKCSAgICBzLnB1c2hfYmFjayhuZXcgU3RlcChpLCBqLTEsIGxpZmVzKSk7Cgl9CiAgICByZXR1cm4gZmFsc2U7Cn0KCmludCBtYWluKCkgewoJLy9pZnN0cmVhbSBjaW4oImluLnR4dCIpOwoJCiAgICBpbnQgaCwgdzsKICAgIGNpbiA+PiBoID4+IHc7CgogICAgTWFwIG1hdHJpeChoKzIsIHZlY3RvcjxjaGFyPih3KzIpKTsKCiAgICBpbnQgaSwgajsKICAgIGludCB4LCB5OwoKICAgIGZvciAoaT0xOyBpPD1oOyBpKyspIHsKICAgICAgICBmb3IgKGo9MTsgajw9dzsgaisrKSB7CiAgICAgICAgICAgIGNpbiA+PiBtYXRyaXhbaV1bal07CiAgICAgICAgICAgIGlmIChtYXRyaXhbaV1bal0gPT0gJ1MnKSB7CiAgICAgICAgICAgICAgICB4ID0gaTsKICAgICAgICAgICAgICAgIHkgPSBqOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIG1hdHJpeFtpXVswXSA9ICd4JzsKICAgICAgICBtYXRyaXhbaV1bal0gPSAneCc7CiAgICB9CgogICAgZm9yIChqPTE7IGo8PXc7IGorKykgewogICAgICAgIG1hdHJpeFswXVtqXSA9ICd4JzsKICAgICAgICBtYXRyaXhbaV1bal0gPSAneCc7CiAgICB9CgogICAgaW50IGxpZmVzOwogICAgY2luID4+IGxpZmVzOwoKICAgIFN0ZXBzIHM7CiAgICBzLnB1c2hfYmFjayhuZXcgU3RlcCh4LCB5LCBsaWZlcyo0KSk7CgogICAgaWYgKG1hcmlvKG1hdHJpeCwgcykpCiAgICAgICAgY291dCA8PCAiWUVTXG4iOwogICAgZWxzZQogICAgICAgIGNvdXQgPDwgIk5PXG4iOwoKICAgIC8vcHJpbnRNYXAobWF0cml4LCBpLCBqKTsKCiAgICByZXR1cm4gMDsKfQ==