m,n=map(int,input().split()) nums=[] dp=[[0 for i in range(n)] for j in range(m)]

for i in range(m): nums.append(list(map(int,input().split())))

dp[-1][-1]=max(1-nums[-1][-1],1) for i in range(n-1,0,-1): dp[m-1][i-1]=max(dp[m-1][i]-nums[m-1][i-1],1) for i in range(m-1,0,-1): dp[i-1][n-1]=max(dp[i][n-1]-nums[i-1][n-1],0) for i in range(m-1,0,-1): for j in range(n-1,0,-1): dp[i-1][j-1]=max(min(dp[i-1][j]-nums[i-1][j-1],dp[i][j-1]-nums[i-1][j-1]),1)
print(dp[0][0])