#include <bits/stdc++.h>
using namespace std;
long long ar[505][505];
int main() {
  int n, i, j, x, y;
  cin >> n;
  for (i = 1; i <= n; i++) {
    for (j = 1; j <= n; j++) {
      cin >> ar[i][j];
      if (ar[i][j] == 0) {
        x = i;
        y = j;
      }
    }
  }
  if (n == 1) {
    printf("1\n");
    return 0;
  }
  set<long long> St;
  set<long long> St2;
  for (i = 1; i <= n; i++) {
    long long sm = 0;
    for (j = 1; j <= n; j++) {
      sm += ar[i][j];
    }
    if (i == x)
      St2.insert(sm);
    else
      St.insert(sm);
  }
  for (j = 1; j <= n; j++) {
    long long sm = 0;
    for (i = 1; i <= n; i++) {
      sm += ar[i][j];
    }
    if (j == y)
      St2.insert(sm);
    else
      St.insert(sm);
  }
  long long sm = 0;
  for (i = 1; i <= n; i++) {
    sm += ar[i][i];
  }
  if (x != y)
    St.insert(sm);
  else
    St2.insert(sm);
  sm = 0;
  for (i = 1; i <= n; i++) {
    sm += ar[i][n - i + 1];
  }
  if (y != (n - x + 1))
    St.insert(sm);
  else
    St2.insert(sm);
  if (St.size() >= 2)
    printf("-1\n");
  else {
    if (St2.size() >= 2)
      printf("-1\n");
    else {
      long long tot = (*St.begin());
      long long my = (*St2.begin());
      long long vl = (tot - my);
      if (vl <= 0)
        printf("-1\n");
      else {
        printf("%lld\n", vl);
      }
    }
  }
  return 0;
}
