#include <bits/stdc++.h>
using namespace std;
const int maxn = 1 << 20;
int n, m, ans[maxn], z = 1;
int seq[maxn * 2];
int tr[maxn * 2] = {0};
bool use[maxn] = {0};
inline int lowbit(int x) { return x & (-x); }
void add(int x, int k) {
  while (x < maxn * 2) tr[x] += k, x += lowbit(x);
}
int kth(int k) {
  int d = 0, i, j;
  for (i = 1 << 20; i; i >>= 1)
    if (tr[d + i] < k) d += i, k -= tr[d];
  return d + 1;
}
int main() {
  int i, j, x, y;
  scanf("%d%d", &n, &m);
  for (i = 1; i <= n; i++) add(m + i, 1);
  for (i = 0; i < m; i++) {
    scanf("%d%d", &x, &y);
    int d = kth(y);
    if (d > m)
      ans[d - m] = x;
    else if (seq[d] != x) {
      z = 0;
      break;
    }
    add(d, -1);
    add(m - i, 1);
    seq[m - i] = x;
  }
  for (i = 1; i <= n; i++)
    if (ans[i] && use[ans[i]]) {
      z = 0;
      break;
    } else
      use[ans[i]] = 1;
  if (!z)
    printf("-1\n");
  else {
    for (i = j = 1; i <= n; i++)
      if (!ans[i]) {
        while (use[j]) j++;
        ans[i] = j++;
      }
    for (i = 1; i <= n; i++) printf("%d%c", ans[i], i < n ? ' ' : '\n');
  }
  return 0;
}
