#include <bits/stdc++.h>
#define rep(i,n) for (int i=0;i<(n);++i)
using namespace std;
using ll = Long Long;
using P = pair<int, int>;

int main(){
  int n,m;
  cin >> n >> m;
  vector<P> p(m);
  rep(i,m) cin >> p[i].first >> p[i].second;//左からfirst桁目がsecond(数字)
  rep(x,1000){
    int keta=1;//0が1桁だから1を初期値にしている
    int nx=x/10;//nx=計算用の変数
    vector<int> d(1,x%10);
    //nxが0になるまで割る10を繰り返す
    while (nx) {
      keta++;
      d.push_back(nx%10);
      nx/=10;
    }
    //この操作では例えば702が合ったら2,0,7の順番で取り出されるからそれを逆順に並び替えれば復元される 
    reverse(d.begin(),d.end());
    if (keta!=n) continue;
    bool ok=true;
    rep(i,m){
      if (d[p[i].first-1]!=p[i].second) ok=false;
    }
    if (ok){
      cout << x << endl;
      return 0;
    }
  }
  cout << -1 << endl;
  return 0;
}