# Maze problem ###### tags: `week5`,`problem2` ```python=1 def make_step(k): for i in range(len(m)): for j in range(len(m[i])): if m[i][j] == k: if i>0 and m[i-1][j] == 0 and a[i-1][j] == 1: m[i-1][j] = k + 1 if j>0 and m[i][j-1] == 0 and a[i][j-1] == 1: m[i][j-1] = k + 1 if i<len(m)-1 and m[i+1][j] == 0 and a[i+1][j] == 1: m[i+1][j] = k + 1 if j<len(m[i])-1 and m[i][j+1] == 0 and a[i][j+1] == 1: m[i][j+1] = k + 1 x = input().split(' ') a = [] for i in range(int(x[0])): a.append(list(map(int,input().split(' ')))) ma = [] for u in range(int(x[0])): if a[u][0] == 0: continue else: m = [] for i in range(len(a)): m.append([]) for j in range(len(a[i])): m[-1].append(0) start = u, 0 i,j = start m[i][j] = 1 k = 0 last = [m[q][int(x[1])-1] for q in range(int(x[0]))] l0 = [0 for q in range(int(x[0]))] while last == l0: k += 1 make_step(k) last = [m[q][int(x[1])-1] for q in range(int(x[0]))] ma.append(max(last)) mi = min(ma) print(mi) ``` > [name=Pingju Hsieh]