#include <bits/stdc++.h>
using namespace std;
int main() {
  int N, M;
  cin >> N >> M;
  vector<int> s(M), c(M);
  for (long long i = 0; i < (M); ++i) {
    cin >> s[i] >> c[i];
  }
  for (long long i = 0; i < (M); ++i) {
    if (s[i] == 1 && c[i] == 0 && N != 1) {
      cout << "-1";
      return 0;
    }
  }
  for (long long i = 0; i < (M); ++i) {
    for (long long j = 0; j < (M); ++j) {
      if (s[i] == s[j] && c[i] != c[j]) {
        cout << "-1";
        return 0;
      }
    }
  }
  if (N == 1) {
    if (M == 0) {
      cout << 0;
      return 0;
    }
    int min = 10;
    for (long long i = 0; i < (M); ++i) {
      if (min > c[i]) {
        min = c[i];
      }
    }
    if (min == 10) min = 0;
    cout << min;
    return 0;
  }
  if (N == 2) {
    if (M == 0) {
      cout << 10;
      return 0;
    }
    int min1 = 10;
    int min2 = 10;
    for (long long i = 0; i < (M); ++i) {
      if (s[i] == 1) {
        if (min1 > c[i]) {
          min1 = c[i];
        }
      } else if (s[i] == 2) {
        if (min2 > c[i] && c[i] != 0) {
          min2 = c[i];
        }
      }
    }
    if (min1 == 10) min1 = 0;
    if (min2 == 10) min2 = 1;
    cout << min1 << min2;
    return 0;
  }
  if (N == 3) {
    if (M == 0) {
      cout << 100;
      return 0;
    }
    int min1 = 10;
    int min2 = 10;
    int min3 = 10;
    for (long long i = 0; i < (M); ++i) {
      if (s[i] == 1) {
        if (min1 > c[i]) {
          min1 = c[i];
        }
      } else if (s[i] == 2) {
        if (min2 > c[i]) {
          min2 = c[i];
        }
      } else if (s[i] == 3 && c[i] != 0) {
        if (min3 > c[i]) {
          min3 = c[i];
        }
      }
    }
    if (min1 == 10) min1 = 0;
    if (min2 == 10) min2 = 0;
    if (min3 == 10) min3 = 1;
    cout << min1 << min2 << min3;
  }
}
