숫자 격자의 왼쪽 위 칸에서 시작해 적힌 숫자만큼 상하좌우로 점프하여 오른쪽 아래 칸에 도달하는 최소 이동 횟수를 구합니다.
n×mn \times mn×m 격자의 각 칸에는 숫자가 하나씩 적혀 있다. 숫자가 kkk인 칸에서는 상하좌우 네 방향 중 하나를 골라 정확히 kkk칸을 건너뛸 수 있고, 이것을 이동 한 번으로 센다. 격자 밖으로 나가는 이동은 할 수 없으며, 한쪽 끝에서 반대쪽 끝으로 이어지지도 않는다.
왼쪽 위 칸에서 출발해 오른쪽 아래 칸에 도착하는 데 필요한 최소 이동 횟수를 구하라.
첫째 줄에 격자의 크기를 나타내는 두 정수 nnn과 mmm이 공백으로 구분되어 주어진다 (1≤n,m≤5001 \le n, m \le 5001≤n,m≤500). nnn과 mmm 중 적어도 하나는 1보다 크다.
다음 nnn개 줄에는 각 줄마다 숫자 mmm개가 공백 없이 주어진다. 각 숫자는 0 이상 9 이하이다.
첫 줄의 첫 문자가 왼쪽 위 칸이고, 마지막 줄의 마지막 문자가 오른쪽 아래 칸이다.
왼쪽 위 칸에서 오른쪽 아래 칸까지 가는 데 필요한 최소 이동 횟수를 한 줄에 출력한다. 도착할 수 없으면 IMPOSSIBLE을 출력한다.