#include <bits/stdc++.h>
using namespace std;
int main(void) {
  int n, m;
  cin >> n >> m;
  vector<int> s(m);
  vector<int> c(m);
  for (int i = 0; i < m; i++) {
    cin >> s.at(i) >> c.at(i);
  }
  bool check = true;
  if (n == 1) {
    int z = 0;
    for (int i = 0; i < m; i++) {
      if (z != 0) {
        if (z != c.at(i)) {
          check = false;
        }
      } else {
        z = c.at(i);
      }
    }
    if (check)
      cout << z << endl;
    else
      cout << -1 << endl;
  }
  if (n == 2) {
    int y = 0;
    int z = 0;
    for (int i = 0; i < m; i++) {
      if (s.at(i) == 1) {
        if (c.at(i) == 0) {
          check = false;
        } else if (y != 0 && y != c.at(i)) {
          check = false;
        } else {
          y = c.at(i);
        }
      }
      if (s.at(i) == 2) {
        if (z != 0) {
          if (z != c.at(i)) {
            check = false;
          }
        } else {
          z = c.at(i);
        }
      }
    }
    if (check)
      cout << y << z << endl;
    else
      cout << -1 << endl;
  }
  if (n == 3) {
    int x = 0;
    int y = 0;
    int z = 0;
    for (int i = 0; i < m; i++) {
      if (s.at(i) == 1) {
        if (c.at(i) == 0) {
          check = false;
        } else if (x != 0 && x != c.at(i)) {
          check = false;
        } else {
          x = c.at(i);
        }
      }
      if (s.at(i) == 2) {
        if (y != 0) {
          if (y != c.at(i)) {
            check = false;
          }
        } else {
          y = c.at(i);
        }
      }
      if (s.at(i) == 3) {
        if (z != 0) {
          if (z != c.at(i)) {
            check = false;
          }
        } else {
          z = c.at(i);
        }
      }
    }
    if (check)
      cout << x << y << z << endl;
    else
      cout << -1 << endl;
  }
}
