flag = True
change = False
# 从右下角开始遍历到a[1][1]
for i in range(n - 1, 0, -1):
for j in range(m - 1, 0, -1):
# 如果是0 则找出可选择的最大值
if a[i][j] == 0:
l = min(a[i][j + 1], a[i + 1][j]) - 1
# 判断最大值是否满足递增数组
if l > a[i - 1][j] and l > a[i][j - 1]:
a[i][j] = l
change = True
else:
print ("-1")
exit(0)
else: # 如果不为0 则判断是否满足递增数组
if a[i][j] <= a[i - 1][j] or a[i][j] <= a[i][j - 1]:
print ("-1")
exit(0)
# 对第一列的数据做递增校验
for i in range(n - 1, 0, -1):
if (a[i][0] <= a[i - 1][0]):
print("-1")
exit(0)
else:
continue
if change == False:
print ("-1")
exit(0)
res = 0
for i in a:
for j in i:
res += j
print res