import sys
lines = []
for line in sys.stdin:
a = line.split()
lines.append(a)
m = int(lines[0][1])
n = int(lines[0][0])
DP = [[0 for _ in range(n)] for _ in range(m)]
DP[m-1][n-1] = max(-int(lines[m][n-1]) + 1, 1) # 血量不能少于1
for i in range(1, m+n-1):
for j in range(i+1):
if j <= m-1 and (i-j) <= n-1:
row = (m-1) - j
column = (n-1) - (i-j)
if row == m - 1:
DP[row][column] = max(DP[row][column+1] - int(lines[row+1][column]), 1) # 血量不能少于1
elif column == n - 1:
DP[row][column] = max(DP[row+1][column] - int(lines[row+1][column]), 1) # 血量不能少于1
else:
down = max(DP[row+1][column] - int(lines[row+1][column]), 1) # 血量不能少于1
right = max(DP[row][column+1] - int(lines[row+1][column]), 1) # 血量不能少于1
DP[row][column] = min(down, right) # 初始血量至少是多少,所以用min
print(DP[0][0])