#include <bits/stdc++.h>
using namespace std;
int CalcSumOfDigit(int n);
int getDigit(long long n);
string upper(string str);
string lower(string str);
const int INF = 1e9;
int main() {
  long long n, m;
  cin >> n >> m;
  vector<long long> a(n, -1);
  for (int(i) = 0; (i) < (m); (i)++) {
    long long s, c;
    cin >> s >> c;
    if (s == 1 && c == 0 && n != 1) {
      cout << -1 << endl;
      return 0;
    }
    if (a[s - 1] == -1) {
      a[s - 1] = c;
    } else if (a[s - 1] != c) {
      cout << -1 << endl;
      return 0;
    }
  }
  long long ans = 0;
  for (int(i) = 0; (i) < (n); (i)++) {
    if (i == 0 && a[0] == -1) {
      cout << 1;
    }
    {
      if (a[i] != -1)
        cout << a[i];
      else {
        cout << 0;
      }
    }
  }
  cout << endl;
  return 0;
}
int getDigit(long long n) {
  int i = 1;
  while (1) {
    n = n / 10;
    if (n == 0) break;
    i++;
  }
  return i;
}
int CalcSumOfDigit(int n) {
  int s = 0;
  while (n) {
    s += n % 10;
    n = n / 10;
  }
  return s;
}
string upper(string str) {
  for (auto itr = str.begin(); itr != str.end(); itr++) {
    if (97 <= *itr && *itr <= 122) {
      *itr = *itr - 32;
    }
  }
  return str;
}
string lower(string str) {
  for (auto itr = str.begin(); itr != str.end(); itr++) {
    if (65 <= *itr && *itr <= 90) {
      *itr = *itr + 32;
    }
  }
  return str;
}
