루시우는 높이가 H이고 너비가 W인 맵의 시작점에서 끝점까지 이동하려고 한다.
맵은 H개의 행과 W개의 열로 이루어진 격자판 모양이다. 각 칸은 벽 또는 빈칸이다.
루시우는 상, 하, 좌, 우 방향 인접한 칸으로 한 칸씩 이동할 수 있다. 벽으로는 이동할 수 없다.
루시우가 한 칸을 이동하는 데에는 1초가 걸린다.
하지만 루시우가 벽을 타고 이동하면 순식간에 (0초의 시간에) 상, 하, 좌, 우 방향 인접한 칸으로 이동할 수 있다.
루시우가 맵의 시작점에서 끝점까지 이동하는 데 걸리는 최소 시간을 구하여라.
첫째 줄에는 H와 W가 공백을 사이에 두고 주어진다. 맵은 H개의 행과 W개의 열로 이루어진 격자판 모양이다.
둘째 줄부터, H개의 줄에 걸쳐서 맵의 모습을 나타내는 W개의 문자가 주어진다.
#는 벽을 뜻한다..는 빈칸을 뜻한다.S는 맵의 시작점을 뜻한다. 시작점은 빈칸이다.E는 맵의 끝점을 뜻한다. 끝점은 빈칸이다.루시우가 맵의 시작점에서 끝점까지 이동하는 데 걸리는 최소 시간을 출력하라.
., #, S, E 중 하나의 문자로 주어진다.S와 끝점 E는 각각 하나씩만 주어진다.