在一个未来的量子计算中心,您需要引导一个数据包(Data Packet)通过一个复杂的量子网络。该网络可以被抽象为一个 的二维矩阵。网络中的每个节点都有其特定的功能: - 标准通道 (Standard Channel) : 用数字 表示,数据包可以在相邻的标准通道节点之间自由移动,每次移动消耗 个时间单位。 - 防火墙 (Firewall) : 用数字 表示,这些节点是损坏的或被设置为不可通行,数据包无法进入。 - 量子纠缠门 (Quantum Entanglement Gate) : 用数字 表示。网络中存在成对的纠缠门。当数据包进入一个纠缠门时,它可以瞬间、不耗费任何时间地传送到与之配对的另一个纠缠门所在的位置。 - 起点 (Source) : 用符号 表示,是数据包的初始位置。 - 终点 (Destination) : 用符号 表示,是数据包的目标位置。 您的任务是计算出数据包从起点 到达终点 所需的最短时间。数据包只能在网络的上下左右四个方向上移动,不能移出网络边界,也不能穿过防火墙。如果数据包无法到达终点,则返回 。
输入描述:
输入的第一行包含两个正整数 和 (),分别代表量子网络的行数和列数。接下来的 行,每行包含 个字符,描述了量子网络每个节点的类型。字符集为 。


输出描述:
输出一个整数,表示数据包从起点到终点所需的最短时间。如果无法到达,则输出 。
示例1

输入

4 9
001010000
00000000S
0100E0001
100000001

输出

5

备注:
本题由牛友@Charles 整理上传
加载中...