U555645 小明走迷宫

题目背景

话说,小明终于走出了迷宫,找到了回别墅的路线。可是等他们回到别墅的时候才发现,捣蛋鬼晓晓趁他不在把别墅摧毁了,并抓走了小明。小明被关押在一个迷宫的牢房里。又是迷宫!!!这次小明彻底愤怒了!

题目描述

小明把关押他们的迷宫里的情况告诉了你: - `S` 点表示迷宫的入口; - `T` 点表示迷宫中牢房的位置; - `.`表示空地,可以通过; - `#`表示墙,不能直接通过; - `K`表示陷阱,一旦进入就必死无疑。 每次只能向上下左右四个方向移动,每移动一个单位距离需要耗费 $1$ 个单位时间。当他们在迷宫中遇到墙的阻碍时,也能破墙进入,不过破墙的过程会花费 $1$ 个单位时间(算上移动时间一共是 $2$ 个单位时间)。现在请你计算一下他们最少需要多少时间才能找到迷宫的牢房。

输入格式

第一行输入两个整数 $n$ 和 $m$,分别代表迷宫的行数和列数。 接下来 $n$ 行,每行有 $m$ 个字符 `S`、`T`、 `.`、`#` 或 `K`,用来表示迷宫地图。

输出格式

输出一个整数,表示找到迷宫出口的最短时间;如果不能找到出口则输出 `-1`。

说明/提示

### 样例解释 小明先往右破墙(耗费 $2$ 个单位时间),再往右走(耗费 $1$ 个单位时间),再往右破墙(耗费 $2$ 个单位时间),接着往下走(耗费 $1$ 个单位时间),再往下走(耗费 $1$ 个单位时间),最后往左走(耗费 $1$ 个单位时间)。 最后耗费的时间总和为:$2 + 1 + 2 + 1 + 1 + 1 = 8$。 ### 数据范围 对于所有的数据,保证 $2 \le m \le n \le 20$。