#include <bits/stdc++.h>
using namespace std;
int aa(int x) {
  int a = 1;
  x = x - 1;
  while (x > 0) {
    a = a * 10;
    x -= 1;
  }
  return a;
}
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;
    cin >> sc.at(i).second;
  }
  sort(sc.begin(), sc.end());
  int tmp = 0;
  for (int i = 0; i < M - 1; i++) {
    if (sc.at(i).first == sc.at(i + 1).first) {
      if (sc.at(i).second != sc.at(i + 1).second) {
        tmp = -1;
      }
    }
  }
  int tmpp = 0;
  if (sc.at(0).first != 1) {
    tmpp = 1;
  }
  reverse(sc.begin(), sc.end());
  int m = sc.at(0).first;
  sort(sc.begin(), sc.end());
  sc.erase(unique(sc.begin(), sc.end()), sc.end());
  if (N != 1) {
    for (int i = 0; i < M; i++) {
      if (sc.at(i).first == 1 && sc.at(i).second == 0) {
        tmp = -1;
      }
    }
  }
  if (tmp == 0) {
    for (int i = 0; i < sc.size(); i++) {
      tmp += sc.at(i).second * (int)(pow(10, (float)(N - sc.at(i).first)));
      if (tmpp == 1) {
        tmp += 1 * (int)(pow(10, (float)(N - 1)));
      }
    }
  }
  cout << tmp << endl;
}
