#include <bits/stdc++.h>
using namespace std;
int n, m, s, ans[100005], a[100005], so[100005], u[300005];
vector<int> v[300005];
inline bool cmp(int x, int y) { return a[x] < a[y]; }
inline bool ope(int x) {
  u[x] = 1;
  for (int i = 0; i < v[x].size(); i++) {
    if (u[v[x][i]] == 1) return 1;
    if (!u[v[x][i]] && ope(v[x][i])) return 1;
  }
  u[x] = 2;
  if (x <= n) ans[s--] = x;
  return 0;
}
int main() {
  scanf("%d%d", &m, &n);
  s = n;
  while (m--) {
    for (int i = 1; i <= n; i++) scanf("%d", a + i);
    for (int i = 1; i <= n; i++) so[i] = i;
    sort(so + 1, so + n + 1, cmp);
    int st = 1;
    while (a[so[st]] == -1) st++;
    s++;
    int k = st;
    for (int i = st; i <= n; i = k) {
      s++;
      while (a[so[k]] == a[so[i]]) {
        v[s - 1].push_back(so[k]);
        v[so[k]].push_back(s);
        k++;
      }
    }
  }
  int k = s;
  int ooo;
  s = n;
  for (int i = 1; i <= k; i++) {
    if (!u[i] && ope(i)) {
      puts("-1");
      return 0;
    }
  }
  for (int i = 1; i < n; i++) printf("%d ", ans[i]);
  printf("%d\n", ans[n]);
  return 0;
}
