#include <bits/stdc++.h>
using namespace std;
long long int a[501][501];
int main() {
  int row, col;
  int N;
  scanf("%d", &N);
  if (N == 1) {
    int t;
    cin >> t;
    if (t == 0)
      printf("1\n");
    else
      printf("%d\n", t);
    return 0;
  }
  for (int i = 1; i <= N; i++) {
    for (int j = 1; j <= N; j++) {
      scanf("%I64d", &a[i][j]);
      if (a[i][j] == 0) {
        row = i;
        col = j;
      }
    }
  }
  if (N == 1) {
    printf("1\n");
    return 0;
  }
  long long int sum = 0;
  if (row == 1) {
    for (int i = 1; i <= N; i++) sum += a[2][i];
  } else {
    for (int i = 1; i <= N; i++) sum += a[1][i];
  }
  long long int tmp = 0;
  for (int i = 1; i <= N; i++) tmp += a[row][i];
  a[row][col] = sum - tmp;
  if (a[row][col] <= 0) {
    printf("-1\n");
    return 0;
  }
  int flag = 0;
  long long int tmp_sum = 0;
  for (int i = 1; i <= N; i++) {
    tmp_sum = 0;
    for (int j = 1; j <= N; j++) tmp_sum += a[i][j];
    if (tmp_sum != sum) {
      flag = 1;
      break;
    }
  }
  if (flag == 1) {
    printf("-1\n");
    return 0;
  }
  for (int i = 1; i <= N; i++) {
    tmp_sum = 0;
    for (int j = 1; j <= N; j++) tmp_sum += a[j][i];
    if (tmp_sum != sum) {
      flag = 1;
      break;
    }
  }
  if (flag == 1) {
    printf("-1\n");
    return 0;
  }
  tmp_sum = 0;
  for (int i = 1; i <= N; i++) tmp_sum += a[i][i];
  if (tmp_sum != sum) {
    printf("-1\n");
    return 0;
  }
  tmp_sum = 0;
  for (int i = 1; i <= N; i++) tmp_sum += a[i][N + 1 - i];
  if (tmp_sum != sum)
    printf("-1\n");
  else
    printf("%I64d\n", a[row][col]);
  return 0;
}
