#include <bits/stdc++.h>
using namespace std;
bool checksame(vector<pair<int, int>> &sc, int &M) {
  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))
      return true;
  }
  return false;
}
bool checkketa(int &N, int &M, vector<pair<int, int>> &sc) {
  if (sc.at(M - 1).first > N) return true;
  return false;
}
int main() {
  int N, M;
  cin >> N >> M;
  vector<pair<int, int>> sc(M);
  for (int i = 0; i < M; i++) {
    int s, c;
    cin >> s >> c;
    sc.at(i) = make_pair(s, c);
  }
  sort(sc.begin(), sc.end());
  if (sc.at(0).first == 1 && sc.at(0).second == 0)
    cout << -1;
  else if (checksame(sc, M))
    cout << -1;
  else if (checkketa(N, M, sc))
    cout << -1;
  else {
    int ans = 0;
    int last = sc.at(0).first;
    ans += sc.at(0).second * pow(10, N - last);
    for (int i = 1; i < M; i++) {
      if (last != sc.at(i).first)
        ans += sc.at(i).second * pow(10, N - sc.at(i).first);
      last = sc.at(i).first;
    }
    cout << ans;
  }
}
