#ZF1132. ♿虚空卡比兽♿
♿虚空卡比兽♿
Description
otto 误入了一个迷宫,为了逃离迷宫,他需要寻找到虚空卡比兽,借助虚空之力离开迷宫。但是虚空卡比兽不甘心被 otto 抓住,在第一次被抓住时,它会进行一次虚空跳跃,瞬移到迷宫中的另一个位置,otto 需要第二次抓住虚空卡比兽才能顺利离开迷宫。
迷宫是由字符 (不含双引号) 组成的大小为 行 列的矩形。其中 以及矩形迷宫外是墙体,otto 不能移动至墙体以及矩形迷宫外部,其他字符的位置都能被通过。
- 代表迷宫的墙体;
- 代表 otto 可行动的通道;
- 代表 otto 的初始位置;
- 代表虚空卡比兽的初始位置;
- 代表虚空卡比兽第一次被抓住后瞬移的位置。
在迷宫中,otto 如果没有遇到墙体,那么他就可以向上下左右任何一个方向移动,否则只能朝没有墙体的方向移动。但由于 otto 乘坐的是轮椅,otto 不能原地掉头,这意味着如果已经进行过移动,otto 就只能相对于原先移动方向前进,左转,右转,而不能直接后退。
otto 想知道是否存在一条路径使他最后能否顺利离开迷宫。
Format
Input
第一行有两个正整数 ,分别表示迷宫地图的行数和列数。
接下来有 行,每行一个长度为 的字符串,字符串仅包含 ,保证字符 在全部的字符串中出现且仅出现一次。
Output
输出有一行,如果存在一条路径使 otto 最后能够顺利离开迷宫,输出 ,否则输出 ,输出不区分大小写( 等都被视为合法输出)。
Samples
5 6
######
0.2.1#
######
####.#
##.#.#
NO
5 6
######
0.2.1.
####..
#..###
##.###
YES
Limitation
1s, 1024KiB for each test case.