#include <bits/stdc++.h>
int main() {
  int n{}, m{};
  std::cin >> n >> m;
  int s{}, c{};
  std::map<int, int> keta;
  for (int i = 0; i < m; i++) {
    std::cin >> s >> c;
    const auto itr = keta.find(s);
    if (itr != keta.end() && itr->second != c) {
      std::cout << -1 << std::endl;
      return 0;
    } else {
      keta[s] = c;
    }
  }
  int val{};
  int x = 1;
  for (int i = 0; i < n; i++) {
    const auto itr = keta.find(n - i);
    if (itr != keta.end()) {
      val += itr->second * x;
    }
    x *= 10;
  }
  if (val < x / 10) {
    std::cout << -1 << std::endl;
  } else {
    std::cout << val << std::endl;
  }
  return 0;
}
