#include <bits/stdc++.h>
static void update(std::string* pStr, int s, int c) {
  std::string& str(*pStr);
  char cc = '0' + c;
  if (str.at(s - 1) == 'N' || str.at(s - 1) == cc) {
    str.at(s - 1) = cc;
  } else {
    str.at(s - 1) = 'I';
  }
}
static bool fin(std::string* pStr) {
  std::string& str(*pStr);
  for (int i = 0; i < str.size(); i++) {
    if (str.at(i) == 'I') {
      return false;
    } else {
      if (i == 0) {
        if (str.at(i) == '0') {
          return false;
        } else if (str.at(i) == 'N') {
          str.at(i) = '1';
        }
      } else {
        if (str.at(i) == 'N') {
          str.at(i) = '0';
        }
      }
    }
  }
  return true;
}
int main(void) {
  int n, m;
  std::cin >> n >> m;
  std::string nstr;
  for (int i = 0; i < n; i++) {
    nstr.push_back('N');
  }
  for (int i = 0; i < m; i++) {
    int s, c;
    std::cin >> s >> c;
    update(&nstr, s, c);
  }
  bool ret = fin(&nstr);
  std::cout << (ret ? std::stoi(nstr) : -1) << std::endl;
  return 0;
}
