#include <bits/stdc++.h>
using namespace std;
const long long N = 200011;
int n, m, t, V[N];
pair<int, int> a[N];
vector<int> g[N], now;
int main() {
  scanf("%d%d", &n, &m);
  t = m;
  for (int i = 1; i <= n; i++) {
    for (int j = 1; j <= t; j++) {
      scanf("%d", &a[j].first);
      a[j].second = j;
    }
    sort(a + 1, a + t + 1);
    for (int j = 1; j < t; j++) {
      if (a[j].first == -1) continue;
      int k = j + 1;
      while (k <= t and a[k].first == a[j].first) k++;
      int o = k;
      while (o <= t and a[o].first == a[k].first) o++;
      m++;
      for (int u = j; u < k; u++) g[a[u].second].push_back(m);
      for (int u = k; u < o and u <= t; u++) g[m].push_back(a[u].second);
      j = k - 1;
    }
  }
  for (int i = 1; i <= m; i++)
    for (int j = 0; j < g[i].size(); j++) V[g[i][j]]++;
  for (int i = 1; i <= m; i++)
    if (V[i] == 0) now.push_back(i);
  for (int i = 0; i < now.size(); i++) {
    int v = now[i];
    for (int j = 0; j < g[v].size(); j++) {
      int u = g[v][j];
      V[u]--;
      if (V[u] == 0) now.push_back(u);
    }
  }
  if (now.size() != m) return cout << -1, 0;
  for (int i = 0; i < now.size(); i++)
    if (now[i] <= t) printf("%d ", now[i]);
}
