U402806 『ZOI Round #1』俄罗斯方块
题目描述
小 Z 最喜欢玩俄罗斯方块啦。最近他发明了一种俄罗斯方块的新玩法:将红色方块移到蓝色区域。
在这种新玩法中,俄罗斯方块可以向上下左右四个方向移动,但是不可以旋转。为了增加游戏的难度,游戏中增设了墙。在方块的移动过程中,不能穿过墙或与墙重叠。除了墙以外的区域都是空地,方块可以任意移动。
游戏区域可以用一个 $N \times M$ 的矩阵表示,其中字符 $c_{i,j}$ 表示第 $i$ 行第 $j$ 列的方格。其中,`.` 表示空地,`#` 表示墙,`A` 表示红色方块的初始位置,`B` 表示移动目标蓝色区域。
小 Z 想知道他是否可以将红色方块移到蓝色区域。若可以,他想知道至少需要移动多少次。
输入格式
无
输出格式
无
说明/提示
#### 样例解释
在样例 1 中,游戏区域如下图所示。其中,白色表示空地,黑色表示墙。

最少次数的移动方案为下,右,下,右,右。
#### 数据范围
**本题采用捆绑测试**。
- Subtask 1(20 points):$1 \le N,M \le 3$。
- Subtask 2(20 points):$1 \le N,M \le 10$。
- Subtask 3(10 points):$N=1$。
- Subtask 4(50 points):无特殊限制。
对于所有测试数据,$1 \le N,M \le 50$,$c_{i,j}\in \{
A,B,.,\#\}$,`A` 部分和 `B` 部分存在且连通且形状和方向完全相同。
**本题开启 Special Judge。** 若你仅能回答正确 `Yes` 或 `No`,可以得到该测试点 $40\%$ 的分数。**若你不会计算最少移动次数,请依然在输出的第二行输出一个整数。** 否则 Special Judge 会出现错误导致该测试点得到 $0$ 分。