// O(RC) BFS
#include <cstdio>
#include <vector>
#include <queue>
using namespace std;
int main() {
int R,C;
char c;
scanf(" %d %d\n",&R,&C);
vector< vector<bool> > V(R); // volne policko
vector< vector<int> > dist(R); // vzdialenost
pair<int,int> zac,end;
for(int i =0; i < R; i++) {
V[i].resize(C,true);
dist[i].resize(C,-1);
for(int j =0; j < C; j++) {
scanf("%c",&c);
if(c == 'X') V[i][j] =false;
if(c == 'T') {
zac.first =i;
zac.second =j;}
if(c == 'M') {
end.first =i;
end.second =j;}}
scanf("\n");}
int dx[4] ={1,-1,0,0};
int dy[4] ={0,0,1,-1};
queue< pair<int,int> > n;
n.push(zac);
dist[zac.first][zac.second] =0;
while(!n.empty()) {
if(n.front() == end) break;
for(int i =0; i < 4; i++)
if(V[n.front().first+dx[i]][n.front().second+dy[i]] && dist[n.front().first+dx[i]][n.front().second+dy[i]] == -1) {
dist[n.front().first+dx[i]][n.front().second+dy[i]] =dist[n.front().first][n.front().second]+1;
zac.first =n.front().first+dx[i];
zac.second =n.front().second+dy[i];
n.push(zac);}
n.pop();}
printf("%d\n",dist[end.first][end.second]);
return 0;}
Ly8gTyhSQykgQkZTCiNpbmNsdWRlIDxjc3RkaW8+CiNpbmNsdWRlIDx2ZWN0b3I+CiNpbmNsdWRlIDxxdWV1ZT4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBtYWluKCkgewoJaW50IFIsQzsKCWNoYXIgYzsKCXNjYW5mKCIgJWQgJWRcbiIsJlIsJkMpOwoJdmVjdG9yPCB2ZWN0b3I8Ym9vbD4gPiBWKFIpOyAvLyB2b2xuZSBwb2xpY2tvCgl2ZWN0b3I8IHZlY3RvcjxpbnQ+ID4gZGlzdChSKTsgLy8gdnpkaWFsZW5vc3QKCXBhaXI8aW50LGludD4gemFjLGVuZDsKCWZvcihpbnQgaSA9MDsgaSA8IFI7IGkrKykgewoJCVZbaV0ucmVzaXplKEMsdHJ1ZSk7CgkJZGlzdFtpXS5yZXNpemUoQywtMSk7CgkJZm9yKGludCBqID0wOyBqIDwgQzsgaisrKSB7CgkJCXNjYW5mKCIlYyIsJmMpOwoJCQlpZihjID09ICdYJykgVltpXVtqXSA9ZmFsc2U7CgkJCWlmKGMgPT0gJ1QnKSB7CgkJCQl6YWMuZmlyc3QgPWk7CgkJCQl6YWMuc2Vjb25kID1qO30KCQkJaWYoYyA9PSAnTScpIHsKCQkJCWVuZC5maXJzdCA9aTsKCQkJCWVuZC5zZWNvbmQgPWo7fX0KCQlzY2FuZigiXG4iKTt9CglpbnQgZHhbNF0gPXsxLC0xLDAsMH07CglpbnQgZHlbNF0gPXswLDAsMSwtMX07CQoJcXVldWU8IHBhaXI8aW50LGludD4gPiBuOwoJbi5wdXNoKHphYyk7CglkaXN0W3phYy5maXJzdF1bemFjLnNlY29uZF0gPTA7Cgl3aGlsZSghbi5lbXB0eSgpKSB7CgkJaWYobi5mcm9udCgpID09IGVuZCkgYnJlYWs7CgkJZm9yKGludCBpID0wOyBpIDwgNDsgaSsrKSAKCQkJaWYoVltuLmZyb250KCkuZmlyc3QrZHhbaV1dW24uZnJvbnQoKS5zZWNvbmQrZHlbaV1dICYmIGRpc3Rbbi5mcm9udCgpLmZpcnN0K2R4W2ldXVtuLmZyb250KCkuc2Vjb25kK2R5W2ldXSA9PSAtMSkgewoJCQkJZGlzdFtuLmZyb250KCkuZmlyc3QrZHhbaV1dW24uZnJvbnQoKS5zZWNvbmQrZHlbaV1dID1kaXN0W24uZnJvbnQoKS5maXJzdF1bbi5mcm9udCgpLnNlY29uZF0rMTsKCQkJCXphYy5maXJzdCA9bi5mcm9udCgpLmZpcnN0K2R4W2ldOwoJCQkJemFjLnNlY29uZCA9bi5mcm9udCgpLnNlY29uZCtkeVtpXTsKCQkJCW4ucHVzaCh6YWMpO30KCQluLnBvcCgpO30KCXByaW50ZigiJWRcbiIsZGlzdFtlbmQuZmlyc3RdW2VuZC5zZWNvbmRdKTsKCXJldHVybiAwO30=
MjAgNTEKWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYClguLi4uLi4uLi4uLi4uLi4uLi5YLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uWApYLi4uLi4uLi5YLi4uLi4uLlQuWC4uLi5YWFhYWFhYWFhYWFhYWFhYWFhYWFhYLi4uLlgKWC5YWFhYWFhYWFhYWFhYWFhYWFguLi4uWC4uLi4uLi4uLi4uLi4uLi4uLi4uWC4uLi5YClguLi4uLi4uLi4uLi4uLi4uLi5YLi4uLlguLi4uWFhYWFhYWFhYWFhYLi4uLlguLi4uWApYLi4uLi4uLi4uLi4uLi4uLi4uWC4uLi5YLi4uLlguLi4uLi4uLi4uWFguWFhYLi4uLlgKWFhYWFhYWFhYWFhYWFhYWFguLlguLi4uWC4uLi5YLi4uLi4uLi4uLi4uLi4uLi4uLi5YClguLi4uLi4uLi4uLi4uLi4uLi5YLi4uLlguLi4uWFhYWFhYWFhYWFhYWFhYWFhYWFhYWApYLi4uLi4uLlhYWFhYWFhYWFhYWFhYWC5YLi4uLi4uLi4uLi4uLi4uLi4uLi5YLi4uLlgKWC4uLi4uLi4uLi4uLi4uLi4uLlguLi4uWC4uWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYClguLi4uLi4uLi4uLi4uLi4uLi5YLi4uLlguLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uWApYLi4uLi4uLi4uLi4uLi4uLi4uWC4uLi5YWFhYWFhYWFhYWFhYWFhYWFhYWFhYLi4uLlgKWC5YWFhYWFhYWFhYWFhYWFhYWFguWFhYWC4uLi4uLi4uLi4uLi4uLi4uLi4uWC4uLi5YClguLi4uLi4uLi4uLi4uLi4uLi5YLi4uLlguLi4uWFhYWFhYWFhYWFhYLi4uLlguLi4uWApYLi4uLi4uLi4uLi4uLi4uLi4uWC4uLi5YLi4uLlguLk0uLi4uLi4uWFguLi5YLi4uLlgKWFhYWFhYWFhYWFhYWFhYWFguLlguLi4uWC4uLi5YLi4uLi4uLi4uLi4uLi4uWC4uLi5YClguLi4uLi4uLi4uLi4uLi4uLi5YLi4uLlguLi4uWFhYWFhYWFhYWFhYWFhYWFhYWFguWApYLi4uLi4uLlhYWFhYWFhYWFhYWFhYWC5YLi4uLi4uLi4uLi4uLi4uLi4uLi5YLi4uLlgKWC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uWC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5YClhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWA==
20 51
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
X..................X..............................X
X........X.......T.X....XXXXXXXXXXXXXXXXXXXXXX....X
X.XXXXXXXXXXXXXXXXXX....X....................X....X
X..................X....X....XXXXXXXXXXXX....X....X
X..................X....X....X..........XX.XXX....X
XXXXXXXXXXXXXXXXX..X....X....X....................X
X..................X....X....XXXXXXXXXXXXXXXXXXXXXX
X.......XXXXXXXXXXXXXXX.X....................X....X
X..................X....X..XXXXXXXXXXXXXXXXXXXXXXXX
X..................X....X.........................X
X..................X....XXXXXXXXXXXXXXXXXXXXXX....X
X.XXXXXXXXXXXXXXXXXX.XXXX....................X....X
X..................X....X....XXXXXXXXXXXX....X....X
X..................X....X....X..M.......XX...X....X
XXXXXXXXXXXXXXXXX..X....X....X...............X....X
X..................X....X....XXXXXXXXXXXXXXXXXXXX.X
X.......XXXXXXXXXXXXXXX.X....................X....X
X.......................X.........................X
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX