#include <bits/stdc++.h>
struct Digit {
  bool isEnter;
  int no;
};
int main() {
  int N, M;
  int S[5], C[5];
  Digit digit[3];
  std::cin >> N >> M;
  for (int i = 0; i < M; i++) {
    std::cin >> S[i] >> C[i];
  }
  bool res = false;
  for (int i = 0; i < M; i++) {
    if (N < S[i]) {
      res = false;
      break;
    }
    if (1 == S[i] && C[i] == 0 && M != 1) {
      res = false;
      break;
    }
    if (!digit[S[i] - 1].isEnter || digit[S[i] - 1].no == C[i]) {
      digit[S[i] - 1].isEnter = true;
      digit[S[i] - 1].no = C[i];
      res = true;
    } else {
      res = false;
      break;
    }
  }
  if (res && (digit[0].no != 0 || N == 1)) {
    for (int i = 0; i < M; i++) {
      std::cout << digit[i].no;
    }
  } else {
    std::cout << -1;
  }
}
