#P1450. 炸串围墙

炸串围墙

题目描述

ak 机现在在一个大小为n×mn\times m的网格中(用'B'代表 ak 机的位置),现在 ak 机打算到达网格中的'*'点,但是网格有些单元格中有许多围墙使 ak 机无法通过。

庆幸的是,ak 机有33个炸弹可以将墙炸毁以至于他可以通过此处,ak 机每次移动只能移动到没有围墙的单元格中且只能移动至相邻的格子中,每次移动只能移动一步,使用炸弹时也算作移动一步。

现在 ak 机想知道他最少移动多少步才能到达'*'点。

输入描述

输入的第一行给出网格的大小n,m(1n,m20)n,m(1\le n,m\le 20)

接着nnmm列输入网格的信息;网格中的墙使用'W'表示;可自由通过的单元格用'.'表示;'*'表示 ak 机的目的地;'B'表示 ak 机的起点;数据保证起点和目的地都只有一个。

输出描述

输出最少移动多少步才能到达'*'点;若无法到达,输出1-1

样例 1

输入

3 3
b..
.w.
..*

输出

4

样例 2

输入

3 3
BWW
WWW
WW*

输出

7