#include <bits/stdc++.h>
using namespace std;
const long long maxn = 2e5 + 10;
const long long mod = 1e9 + 7;
const long long inf = 1e9;
long long n, m;
vector<long long> g[maxn], ord;
long long mark[maxn];
void dfs(long long v) {
  mark[v] = 1;
  for (auto u : g[v])
    if (mark[u] == 1) {
      cout << -1;
      exit(0);
    }
  for (auto u : g[v])
    if (!mark[u]) dfs(u);
  mark[v] = 2;
  ord.push_back(v);
}
signed main() {
  cin >> n >> m;
  long long a[n + 1][m + 1], o = m + 1;
  for (long long i = 1; i <= n; i++) {
    vector<pair<long long, long long>> ve;
    for (long long j = 1; j <= m; j++) {
      cin >> a[i][j];
      if (a[i][j] != -1) ve.push_back({a[i][j], j});
    }
    sort(ve.begin(), ve.end());
    long long x = 0;
    long long sz = ve.size();
    for (long long j = 0; j < sz - 1; j++) {
      if (ve[j].first != ve[j + 1].first) {
        for (long long jj = x; jj <= j; jj++)
          if (x) g[o].push_back(ve[jj].second);
        o++;
        for (long long jj = x; jj <= j; jj++) g[ve[jj].second].push_back(o);
        x = j + 1;
      }
    }
    for (long long jj = x; jj < ve.size(); jj++)
      if (x) g[o].push_back(ve[jj].second);
  }
  for (long long i = 1; i <= o; i++) {
    if (!mark[i]) dfs(i);
  }
  reverse(ord.begin(), ord.end());
  for (auto v : ord) {
    if (v <= m) cout << v << " ";
  }
}
