#include <bits/stdc++.h>
using namespace std;
int main() {
  int N, M;
  int INF = 100000;
  cin >> N >> M;
  vector<pair<int, int> > SC(M);
  vector<int> ANS(3);
  if (N != 1 && M == 0) {
    cout << 0 << endl;
    return 0;
  }
  for (long long i = 0; i < (M); i++) cin >> SC.at(i).first >> SC.at(i).second;
  sort(SC.begin(), SC.end());
  reverse(SC.begin(), SC.end());
  for (long long i = 0; i < (M - 1); i++) {
    if (SC.at(i).first == SC.at(i + 1).first &&
        SC.at(i).second != SC.at(i + 1).second) {
      cout << "-1" << endl;
      return 0;
    }
  }
  for (long long i = 0; i < (M); i++) {
    ANS.at(SC.at(i).first - 1) = SC.at(i).second;
    if (N == 3 && SC.at(i).first == 3 && SC.at(i).second == 0) {
      cout << "-1" << endl;
      return 0;
    }
    if (N == 2 && SC.at(i).first == 2 && SC.at(i).second == 0) {
      cout << "-1" << endl;
      return 0;
    }
  }
  for (long long i = 0; i < (N); i++) {
    if (ANS.at(i) == INF) {
      cout << "-1" << endl;
      return 0;
    }
  }
  for (long long i = 0; i < (N); i++) {
    if (N == 3 && ANS.at(0) == 0 && ANS.at(1) == 0) {
      cout << ANS.at(2) << endl;
      return 0;
    }
    if (N == 2 && ANS.at(0) == 0) {
      cout << ANS.at(1) << endl;
      return 0;
    }
    cout << ANS.at(i);
    cout << endl;
  }
  return 0;
}
