1582: 走迷宫C

Memory Limit:128 MB Time Limit:1.000 S
Judge Style:Text Compare Creator:
Submit:3 Solved:2

Description

小明去一个 lns="http://www.w3.org/1998/Math/MathML">× 树林迷宫,lns="http://www.w3.org/1998/Math/MathML">2300,2300

迷宫里有一些传送装置,可以将小明从一点到另一点进行瞬间转移。这些装置可以双向使用。

如果小明处在这个装置的起点或者终点,小明就必须使用这个装置。

树林迷宫除了唯一的一个出口都被树木包围。

迷宫中的每个元素都由以下项目中的一项组成:

  1. 树木,# 表示,这些格子是不可以通过的。
  2. 草地,. 表示,可以简单的通过。
  3. 传送装置,每一对大写字母 lns="http://www.w3.org/1998/Math/MathML"> 到 lns="http://www.w3.org/1998/Math/MathML"> 表示。
  4. 出口,= 表示。
  5. 起点, @ 表示

小明能在一格草地上可能存在的四个相邻的格子移动,花费 lns="http://www.w3.org/1998/Math/MathML">1 个单位时间。从装置的一个结点到另一个结点不花时间。

Input

第一行:两个用空格隔开的整数 lns="http://www.w3.org/1998/Math/MathML"> 和 lns="http://www.w3.org/1998/Math/MathML">

第 lns="http://www.w3.org/1998/Math/MathML">2+1 行:第 lns="http://www.w3.org/1998/Math/MathML">+1 行描述了迷宫中的第 lns="http://www.w3.org/1998/Math/MathML"> 行的情况(共有lns="http://www.w3.org/1998/Math/MathML">个字符,每个字符中间没有空格)。

Output

一个整数,表示起点到出口所需的最短时间。

Sample Input Copy

5 6
###=##
#.W.##
#.####
#.@W##
######

Sample Output Copy

3

HINT

例如以下矩阵,lns="http://www.w3.org/1998/Math/MathML">=5,=6

###=##
#.W.##
#.####
#.@W##
######

唯一的一个装置的结点用大写字母 

lns="http://www.w3.org/1998/Math/MathML"> 表示。

最优方案为:先向右走到装置的结点,花费一个单位时间,再到装置的另一个结点上,花费 lns="http://www.w3.org/1998/Math/MathML">0 个单位时间,然后再向右走一个,再向上走一个,到达出口处,总共花费了 lns="http://www.w3.org/1998/Math/MathML">3 个单位时间。