490. 走迷宫 标准IO
时间限制:1000 MS 内存限制:128 MB    算法评级:    状态:

给定一个 $n \times m$ 的二维整数数组,用来表示一个迷宫,数组中只包含 $0$ 或 $1$,其中 $0$ 表示可以走的路,$1$ 表示不可通过的墙壁。

最初,有一个人位于左上角 $(1,1)$ 处,已知该人每次可以向上、下、左、右任意一个方向移动一个位置。

请问,该人从左上角移动至右下角 $(n,m)$ 处,至少需要移动多少次。

数据保证 $(1,1)$ 处和 $(n,m)$ 处的数字为 $0$,且一定至少存在一条通路


输入格式

第一行包含两个整数 $n$ 和 $m$。

接下来 $n$ 行,每行包含 $m$ 个整数($0$ 或 $1$),表示完整的二维数组迷宫。


输出格式

输出一个整数,表示从左上角移动至右下角的最少移动次数。


数据范围

$1 \le n,m \le 100$


样例输入

5 5
0 1 0 0 0
0 1 0 1 0
0 0 0 0 0
0 1 1 1 0
0 0 0 1 0

样例输出

8

提示

代码运行状态:

输出