#include <bits/stdc++.h>
using namespace std;
int N, M, T, D, A[2000005], F[2000005], Ans[2000005];
int IN() {
  int x = 0, ch;
  for (; (ch = getchar()) < '0' || ch > '9';)
    ;
  for (; ch >= '0' && ch <= '9'; (ch = getchar())) (x *= 10) += ch - '0';
  return x;
}
void Add(int x, int k) {
  for (; x <= T; x += x & -x) F[x] += k;
}
int Ask(int x) {
  int ret = 0;
  for (; x; x -= x & -x) ret += F[x];
  return ret;
}
int Kth(int k) {
  int ret = 0, tot = 0;
  for (int i = 20; i + 1; i--)
    if (ret + (1 << i) <= T && tot + F[ret + (1 << i)] < k)
      ret += 1 << i, tot += F[ret];
  return ret + 1;
}
int main() {
  N = IN();
  M = D = IN();
  T = N + M;
  for (int i = M + 1; i <= T; i++) Add(i, 1);
  for (int i = 1; i <= M; i++) {
    int x = IN(), y = IN(), k;
    if (!A[x]) {
      if ((k = Kth(y)) <= M) return puts("-1"), 0;
      Ans[k - M] = x;
      A[x] = k;
    }
    if (Ask(A[x]) != y) return puts("-1"), 0;
    Add(A[x], -1);
    Add(A[x] = D--, 1);
  }
  for (int i = 1, j = 1; i <= N; i++)
    if (!A[i]) {
      for (; Ans[j]; j++)
        ;
      Ans[j++] = i;
    }
  for (int i = 1; i <= N; i++) printf("%d ", Ans[i]);
}
