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$。