Problem Statement
There is a town represented as a two-dimensional grid with $H$ horizontal rows and $W$ vertical columns.
A character $a_{i,j}$ describes the square at the $i$-th row from the top and $j$-th column from the left. Here, $a_{i,j}$ is one of the following: S , G , . , # , a, ..., and z.
# represents a square that cannot be entered, and a, ..., z represent squares with teleporters.
Takahashi is initially at the square represented as S. In each second, he will make one of the following moves:
- Go to a non-
#square that is horizontally or vertically adjacent to his current position. - Choose a square with the same character as that of his current position, and teleport to that square. He can only use this move when he is at a square represented as
a, ..., orz.
Find the shortest time Takahashi needs to reach the square represented as G from the one represented as S.
If the destination is unreachable, report -1 instead.
Constraints
$1 \le H, W \le 2000$$a_{i,j}$isS,G,.,#, or a lowercase English letter.- There is exactly one square represented as
Sand one square represented asG.
Input
Input is given from Standard Input in the following format:
H W
a_{1,1}\dots a_{1,W}
\vdots
a_{H,1}\dots a_{H,W}
Output
Print the shortest time Takahashi needs to reach the square represented as G from the one represented as S.
If the destination is unreachable from the initial position, print -1 instead.
样例
2 5
S.b.b
a.a.G
4
11 11
S##...#c...
...#d.#.#..
..........#
.#....#...#
#.....bc...
#.##......#
.......c..#
..#........
a..........
d..#...a...
.#........G
14
11 11
.#.#.e#a...
.b..##..#..
#....#.#..#
.#dd..#..#.
....#...#e.
c#.#a....#.
.....#..#.e
.#....#b.#.
.#...#..#..
......#c#G.
#..S...#...
-1
题面与样例版权归 AtCoder 及出题人所有;中文翻译由 AI 生成(CI 管线),如有出入请以原文为准。