import numpy as np
from queue import Queue
def main():
    global g, q, d,n,m
    n = int(input("请输入n值:"))
    m = int(input("请输入m值:"))

    global g,q,d
    g = np.zeros((n,m),dtype=int) # 存放迷宫
    q = Queue(0) # 队列
    d = np.full((n,m),-1,dtype=int) # 走了多少

    for i in range(n):
        print("请输入第{}行:".format(i))
        for j in range(m):
            g[i][j] = int(input("请输入第{}个数值".format(j)))
    print(g)
    print(bfs())
    print(g)

def bfs():
    d[0][0] = 0
    dx = [-1,0,1,0]
    dy = [0,1,0,-1] # 上下左右
    q.put([0,0]) # 队列加入起点
    # 遍历四种可行路线

    while q.qsize():
        t = q.get()
        for i in range(4):
            x = t[0] + dx[i]
            y = t[1] + dy[i]

            if x>=0 and x<n and y>=0 and y<m and g[x][y] != 1 and d[x][y] == -1:
                d[x][y] = d[t[0]][t[1]]+1
                q.put([x,y])

    return d[n-1][m-1]


if __name__ == '__main__':
    main()