#include <bits/stdc++.h>
using namespace std;
int main() {
  int N, M;
  cin >> N >> M;
  vector<pair<int, int>> sc(M);
  for (int i = 0; i < M; i++) cin >> sc.at(i).first >> sc.at(i).second;
  bool exist = true;
  sort(sc.begin(), sc.end());
  for (int i = 0; i < M; i++) {
    if (N != 1 && sc.at(i).first == 1 && sc.at(i).second == 0)
      exist = false;
    else if (i + 1 < M && sc.at(i).first == sc.at(i + 1).first &&
             sc.at(i).second != sc.at(i + 1).second)
      exist = false;
  }
  if (exist) {
    vector<bool> existnum(N, false);
    vector<string> a(N);
    for (int i = 0; i < M; i++) {
      for (int j = 0; j < N; j++) {
        if (!existnum.at(j) && sc.at(i).first == j + 1) {
          existnum.at(j) = true;
          a.at(j) = to_string(sc.at(i).second);
        }
      }
    }
    for (int i = 0; i < N; i++) {
      if (!existnum.at(i)) {
        if (i == 0)
          a.at(i) = to_string(1);
        else
          a.at(i) = to_string(0);
      }
    }
    for (int i = 0; i < N; i++) {
      if (i != N - 1)
        cout << a.at(i);
      else
        cout << a.at(i) << endl;
    }
  } else
    cout << -1 << endl;
}
