#include <bits/stdc++.h>
using namespace std;
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  cout << fixed;
  cout.precision(4);
  int r, c;
  cin >> r >> c;
  int a[r][c];
  for (int i = 0; i < r; ++i) {
    for (int j = 0; j < c; ++j) {
      cin >> a[i][j];
    }
  }
  long long sum = 0ll;
  if (a[r - 1][c - 1] <= a[r - 2][c - 1] ||
      a[r - 1][c - 1] <= a[r - 1][c - 2]) {
    cout << -1 << '\n';
    return 0;
  }
  sum += a[r - 1][c - 1];
  for (int i = c - 2; i > 0; --i) {
    int choose;
    if (a[r - 1][i] != 0)
      choose = a[r - 1][i];
    else
      choose = a[r - 1][i + 1] - 1;
    if (choose <= a[r - 1][i - 1] || choose <= a[r - 2][i] ||
        choose >= a[r - 1][i + 1]) {
      cout << -1 << '\n';
      return 0;
    }
    a[r - 1][i] = choose;
    sum += a[r - 1][i];
  }
  if (a[r - 1][0] <= a[r - 2][0] || a[r - 1][0] >= a[r - 1][1]) {
    cout << -1 << '\n';
    return 0;
  }
  sum += a[r - 1][0];
  for (int i = r - 2; i > 0; --i) {
    if (a[i][c - 1] <= a[i - 1][c - 1] || a[i][c - 1] >= a[i + 1][c - 1] ||
        a[i][c - 1] <= a[i][c - 2]) {
      cout << -1 << '\n';
      return 0;
    }
    sum += a[i][c - 1];
    for (int j = c - 2; j > 0; --j) {
      int choose;
      if (a[i][j] != 0)
        choose = a[i][j];
      else
        choose = min(a[i][j + 1], a[i + 1][j]) - 1;
      if (choose >= a[i][j + 1] || choose >= a[i + 1][j] ||
          choose <= a[i][j - 1] || choose <= a[i - 1][j]) {
        cout << -1 << '\n';
        return 0;
      }
      a[i][j] = choose;
      sum += a[i][j];
    }
    if (a[i][0] >= a[i][1] || a[i][0] >= a[i + 1][0] ||
        a[i][0] <= a[i - 1][0]) {
      cout << -1 << '\n';
      return 0;
    }
    sum += a[i][0];
  }
  if (a[0][c - 1] <= a[0][c - 2] || a[0][c - 1] >= a[1][c - 1]) {
    cout << -1 << '\n';
    return 0;
  }
  sum += a[0][c - 1];
  for (int i = c - 2; i > 0; --i) {
    int choose;
    if (a[0][i] != 0)
      choose = a[0][i];
    else
      choose = min(a[0][i + 1], a[1][i]) - 1;
    if (choose >= a[0][i + 1] || choose >= a[1][i] || choose <= a[0][i - 1]) {
      cout << -1 << '\n';
      return 0;
    }
    a[0][i] = choose;
    sum += a[0][i];
  }
  if (a[0][0] >= a[1][0] || a[0][0] >= a[0][1]) {
    cout << -1 << '\n';
    return 0;
  }
  sum += a[0][0];
  cout << sum << '\n';
  return 0;
}
