CF793B Igor and his way to work
题目描述
伴随着闹钟的铃声,财政分析家 Igor 匆忙起来赶去工作。他吃完早餐后就坐到了他的车上。不幸的,当他打开他的 GPS 导航时,发现在他所居住的小镇 Bankopolis 中的一些道路,由于道路施工而关闭。更不幸的是,车的方向盘有点问题,所以在他去他的银行办公室的途中,**最多只能转两次弯**。
小镇 Bankopolis 可以看做是一个 $n$ 行 $m$ 列的网格图,Igor 需要找到一条从家到银行的道路,这条道路转弯次数最多为 $2$ 次,且不能经过正在维修的道路,或者你可以告诉他不能到达,他应该在家工作。**转弯**定义为 Igor 的车改变一次方向。Igor 的车只能向**上,下,左,右**四个方向行驶。在最开始的时候,Igor 的车可以选择任何方向。因为 Igor 仍然在睡觉,所以请你帮帮他。
输入格式
第一行包含两个正整数 $n$ 和 $m$,表示 Bankopolis 小镇的行数和列数。
接下来 $n$ 行,每行 $m$ 个字符,用于描述一个 $n\times m$ 的矩阵。
可能会出现以下字符:
- $\texttt{.}$:一个可行的道路;
- $\texttt{*}$:正在施工的道路;
- $\texttt{S}$:Igor 的家;
- $\texttt{T}$:银行办公室的位置。
保证 $\texttt{S}$ 和 $\texttt{T}$ 出现且只出现一次。
输出格式
如果能够到达,输出 $\texttt{YES}$;否则输出 $\texttt{NO}$。
说明/提示
The first sample is shown on the following picture:
In the second sample it is impossible to reach Igor's office using less that $ 4 $ turns, thus there exists no path using no more than $ 2 $ turns. The path using exactly $ 4 $ turns is shown on this picture:
