#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;
    if (sc.at(i).first == 1 && sc.at(i).second == 0) {
      cout << -1 << endl;
      return 0;
    }
  }
  int Ans = 0;
  int save = 0;
  sort(sc.begin(), sc.end());
  if (M == 0) {
    if (N == 1) {
      cout << 0 << endl;
    } else if (N == 2) {
      cout << 10 << endl;
    } else if (N == 3) {
      cout << 100 << endl;
    }
  } else {
    for (int i = 0; i < M - 1; i++) {
      if ((sc.at(i).first == sc.at(i + 1).first) &&
          (sc.at(i).second != sc.at(i + 1).second)) {
        cout << -1 << endl;
        return 0;
      }
    }
    if (N == 1) {
      Ans = sc.at(0).second;
    } else if (N == 2) {
      if (sc.at(0).first != 1) {
        Ans = sc.at(0).second + 10;
      } else {
        for (int i = 0; i < M; i++) {
          if (sc.at(i).first == 1) {
            Ans = sc.at(i).second * 10;
          } else if (sc.at(i).first == 2) {
            Ans += sc.at(i).second;
            break;
          }
        }
      }
    } else if (N == 3) {
      if (sc.at(0).first != 1) {
        Ans = 100;
        for (int i = 0; i < M; i++) {
          if (sc.at(i).first == 2) {
            save = sc.at(i).second * 10;
          } else if (sc.at(i).first == 3) {
            Ans += sc.at(i).second;
            break;
          }
        }
        Ans += save;
      } else {
        for (int i = 0; i < M; i++) {
          if (sc.at(i).first == 1) {
            Ans = sc.at(i).second * 100;
          } else if (sc.at(i).first == 2) {
            save = sc.at(i).second * 10;
          } else if (sc.at(i).first == 3) {
            Ans += sc.at(i).second;
            break;
          }
        }
        Ans += save;
      }
    }
    cout << Ans << endl;
  }
  return 0;
}
