P2130 狂奔的Wzf
题目背景
众所周知,Wzf 一直想写作业。
可是今天,它的作业被 WSD 抢了!!!
Wzf 很愤怒!!!
他决定以最快的速度,冲向作业。
在他面前是一个迷宫,作业就在其中!
题目描述
现有一个 $n$ 行 $m$ 列的迷宫:
|标识|含义|
|:-:|:-:|
|`$`|空地,能走上去|
|`.`|也是空地,也能走上去|
|`X`|障碍,不能走上去|
|`#`|终点,这里有 Wzf 的作业|
Wzf 从迷宫左上角(第 $1$ 行第 $1$ 列)开始,每秒钟可以:
1. 选中一个方向(上 / 下 / 左 / 右)。
2. 选中一个非负整数 $m$。
3. 向选中的方向跨一步,移动 $2^m$ 格:
- 中途**不可以**跨过障碍。
- 落脚点上不能有障碍。
- 不能走到迷宫之外。
求 Wzf 至少需要多少秒才能走到终点。
输入格式
第一行两个整数 $n,m\ (1 \le n,m \le 1000)$。
接下来 $n$ 行,每行 $m$ 个字符。
**保证 `#` 有且只有一个。**
**保证第 $\bm 1$ 行第 $\bm 1$ 列的标识不是 `X`。**
输出格式
一行一个整数,表示 Wzf 至少需要多少秒才能走到终点。
如果 Wzf 不可能走到终点,那么输出 $-1$。