#include <bits/stdc++.h>
using namespace std;
int tot, n, m, i, j, k, o, all, now;
int a[100011], d[300011], dl[300011];
vector<int> e[300011];
bool cmp(int x, int y) { return a[x] < a[y]; }
int main() {
  scanf("%d%d", &n, &m);
  if (m == 1) return printf("1"), 0;
  for (i = 1; i <= m; i++) dl[i] = i;
  tot = m;
  for (i = 1; i <= n; i++) {
    for (j = 1; j <= m; j++) scanf("%d", a + j);
    sort(dl + 1, dl + m + 1, cmp);
    for (j = 1; j <= m && a[dl[j]] == -1; j++)
      ;
    tot++;
    while (j <= m) {
      for (o = j; o <= m && a[dl[o]] == a[dl[j]]; o++)
        e[tot].push_back(dl[o]), d[dl[o]]++, e[dl[o]].push_back(tot + 1),
            d[tot + 1]++;
      tot++;
      j = o;
    }
  }
  memset(a, 0, sizeof(a));
  for (i = 1; i <= tot; i++)
    if (d[i] == 0) dl[++all] = i, a[i] = all;
  for (i = 1; i <= all; i++)
    for (k = 0; k < e[dl[i]].size(); k++)
      if ((--d[e[dl[i]][k]]) == 0) {
        dl[++all] = e[dl[i]][k];
        a[dl[all]] = all;
      }
  for (i = 1; i <= m; i++) dl[i] = i;
  sort(dl + 1, dl + m + 1, cmp);
  if (a[dl[1]])
    for (i = 1; i <= m; i++) printf("%d ", dl[i]);
  else
    printf("-1");
  return 0;
}
