import sys input = sys.stdin.readline from heapq import heappop,heappush,heapify H,W=map(int,input().split()) A=[list(map(int,input().split())) for i in range(H)] Q1=[] Q2=[] USE=[[0]*W for i in range(H)] USE2=[[0]*W for i in range(H)] USE3=[[0]*W for i in range(H)] USE4=[[0]*W for i in range(H)] Q1.append((A[0][1],0,1)) Q1.append((A[1][0],1,0)) Q2.append((A[H-1][W-2],H-1,W-2)) Q2.append((A[H-2][W-1],H-2,W-1)) heapify(Q1) heapify(Q2) USE[0][0]=1 USE2[H-1][W-1]=1 flag=0 for tt in range(10**9): if flag==1: break if tt%2==0: while True: _,x,y=heappop(Q1) if USE[x][y]==1: continue USE[x][y]=1 break for z,w in [(x+1,y),(x-1,y),(x,y-1),(x,y+1)]: if 0<=z