#include <bits/stdc++.h>
using namespace std;
long long EPS = 1000000007;
double PI = 3.14159265358979323846;
const int MAXN = 1000040;
long long abss(long long h) { return max(h, -h); }
double fabss(double h) { return max(h, -h); }
long long ceill(long long x, long long y) {
  if (x % y != 0) return (x / y) + 1;
  return x / y;
}
string itos(long long num) {
  string str = "";
  if (num == 0) return "0";
  while (num != 0) {
    str += ((num % 10) + '0');
    num /= 10;
  }
  reverse(str.begin(), str.end());
  return str;
}
long long sstoi(string num) {
  long long count = 1;
  for (int i = 0; i < (int)num.size() - 1; i++) {
    count *= 10;
  }
  long long ans = 0;
  for (int i = 0; i < (int)num.size(); i++) {
    ans += (num[i] - '0') * count;
    count /= 10;
  }
  return ans;
}
long long n, m, k;
int a[100][100];
int used[MAXN];
int c[MAXN];
int d[MAXN];
int main() {
  cin >> n;
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < n; j++) {
      cin >> a[i][j];
    }
  }
  for (int i = 0; i < n - 1; i++) {
    for (int j = 0; j < n; j++) {
      if (used[j] == 1) {
        continue;
      }
      vector<int> p;
      for (int z = 0; z < n; z++) {
        if (used[z] != 1 && j != z) {
          p.push_back(a[j][z]);
        }
      }
      sort(p.begin(), p.end());
      if (p[0] == p[(int)p.size() - 1]) {
        c[j] = p[0];
        d[p[0]] = 1;
        used[j] = 1;
        break;
      }
    }
  }
  for (int i = 0; i < n; i++) {
    if (c[i] == 0) {
      for (int j = 1; j <= n; j++) {
        if (d[j] == 0) {
          cout << j << " ";
          break;
        }
      }
      continue;
    }
    cout << c[i] << " ";
  }
}
