#include <bits/stdc++.h>
using namespace std;
const long long INF = 1e18;
void in() {}
template <typename T, class... U>
void in(T &t, U &...u) {
  cin >> t;
  in(u...);
}
void out() { cout << "\n"; }
template <typename T, class... U>
void out(const T &t, const U &...u) {
  cout << t;
  if (sizeof...(u)) cout << " ";
  out(u...);
}
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  ios::sync_with_stdio(false);
  cin.tie(0);
  ios::sync_with_stdio(false);
  cin.tie(0);
  ios::sync_with_stdio(false);
  cin.tie(0);
  ios::sync_with_stdio(false);
  cin.tie(0);
  ios::sync_with_stdio(false);
  cin.tie(0);
  ios::sync_with_stdio(false);
  cin.tie(0);
  ios::sync_with_stdio(false);
  cin.tie(0);
  ios::sync_with_stdio(false);
  cin.tie(0);
  ios::sync_with_stdio(false);
  cin.tie(0);
  ios::sync_with_stdio(false);
  cin.tie(0);
  ios::sync_with_stdio(false);
  cin.tie(0);
  ios::sync_with_stdio(false);
  cin.tie(0);
  ios::sync_with_stdio(false);
  cin.tie(0);
  int n;
  in(n);
  int n1;
  in(n1);
  int a[20];
  vector<int> tmp(n);
  for (long long i = 0; i < n1; i++) {
    int x;
    in(x);
    x--;
    int x1;
    in(x1);
    if (x > n) {
      out(-1);
      return 0;
    }
    if (x == 0 and x1 == 0 and n != 1) {
      out(-1);
      return 0;
    }
    if (tmp[x] > 0 and x1 != tmp[x]) {
      out(-1);
      return 0;
    }
    if (x1 == 0) {
      tmp[x] = 20;
    } else
      tmp[x] = x1;
  }
  for (long long i = 0; i < n; i++) {
    if (tmp[i] != 20)
      cout << tmp[i];
    else
      cout << 0;
  }
  return 0;
}
