#include <bits/stdc++.h>
using namespace std;
const int N = 300005;
vector<int> E[N];
int a[N], b[N], in[N], q[N], ret[N];
bool cmp(int x, int y) { return a[x] < a[y]; }
int main() {
  int m, n, i, j, k;
  scanf("%d%d", &m, &n);
  k = n;
  for (i = 0; i < m; i++) {
    for (j = 0; j < n; j++) scanf("%d", &a[j]), b[j] = j;
    sort(b, b + n, cmp);
    int h, pre = -1;
    for (j = 0; j < n; j = h) {
      for (h = j; h < n; h++)
        if (a[b[h]] != a[b[j]]) break;
      if (a[b[j]] == -1) continue;
      if (pre != -1) {
        for (int z = j; z < h; z++) E[b[z]].push_back(pre), in[pre]++;
      }
      int now = k++;
      for (int z = j; z < h; z++) E[now].push_back(b[z]), in[b[z]]++;
      pre = now;
    }
  }
  int t = 0, w = 0;
  j = 0;
  for (i = 0; i < k; i++)
    if (!in[i]) q[w++] = i;
  while (t < w) {
    int nw = q[t++];
    if (nw < n) ret[j++] = nw;
    for (i = E[nw].size() - 1; i >= 0; i--) {
      int z = E[nw][i];
      in[z]--;
      if (!in[z]) q[w++] = z;
    }
  }
  if (w != k)
    puts("-1");
  else {
    for (i = j - 1; i > 0; i--) printf("%d ", ret[i] + 1);
    printf("%d\n", ret[i] + 1);
  }
  return 0;
}
