#506. 城市交通

城市交通

问题背景

X城市的交通十分不便利,城市可被看作一个 nmn*m 大小的矩阵。FXZFXZ 手持该城市的地图,地图以特定格式描述了城市内的通行规则,他需要尽快从当前位置赶到机场,因此需要找到从起点到机场的最短路径。

问题描述

X城市的地图是一个 2n+12*n+1 行、2m+12*m+1 列的矩阵:

  • 地图中 FXZFXZ 所在的格子用 S 表示,机场所在的格子用 T 表示,其余可通行格子用空格表示;
  • 左右相邻的两个格子若无法通行,用|表示;上下相邻的两个格子若无法通行,用-表示;+表示格子的四个角;
  • 题目保证城市 X 最外圈无法通行。

请你帮助 FXZFXZ 计算到达机场最少需要走过的格子数(包括起点S和终点T)。若无法到达机场T,则输出"FXZ Got lost...TAT"。

输入格式

第一行输入两个整数 n,mn, m,表示 XX 城市的大小( nnmm 列的格子)。 接下来 2n+12*n+1 行,每行包含 2m+12*m+1 个字符,描述 FXZFXZ 手中的地图。 题目保证 SSTT 都有且仅有一个。

输出格式

FXZFXZ 能到达机场,输出最少需要经过的格子数;否则输出FXZ Got lost...TAT(不包含双引号)。

输入样例 1

4 3
+-+-+-+
|S| | |
+ +-+-+
| | | |
+ +-+-+
| |T  |
+ +-+ +
|     |
+-+-+-+

输出样例 1

8

输入样例 2

3 3
+-+-+-+
|S|   |
+ + +-+
| | |T|
+ + +-+
|   | |
+-+-+-+

输出样例 2

FXZ Got lost...TAT

说明

对于第一个样例,链接:TRDD所在的位置为(1, 1), 机场的位置为(3, 2)路线为(1, 1) -> (2, 1) -> (3, 1) -> (4, 1) -> (4,2) -> (4,3) -> (3,3) ->(3,2) 共8个格子

对于第二个样例,无法从S到达T。

评测数据规模

对于所有评测数据,1<=n,m<=30001 <= n, m <= 3000