#include <bits/stdc++.h>
using namespace std;
using ll = long long;

int ks(int n){
  int ans=1;
  for(int i=0;i<n;i++){
    ans*=10;
  }
  return ans;
}

int ki(int n){
  if(n==1){
    return 0;
  }
  int ans=1;
  for(int i=0;i<n-1;i++){
    ans*=10;
  }
  return ans;
}

bool hantei(int N,int n,int s,int c){
  int ss=ks(N-s+1);
  int si=ks(N-s+1)/10;
  if(n%ss/si==c){
    return true;
  }
  return false;
}

int main(){
  int N,M;
  cin >> N >> M;
  vector<int> s(M);
  vector<int> c(M);
  for(int i=0;i<M;i++){
    cin >> s[i] >> c[i];
  }
  for(int i=ki(N);i<ks(N);i++){
    int flag=0;
    for(int j=0;j<M;j++){
      if(!hantei(N,i,s[j],c[j])){
        flag=1;
      }
    }
    if(flag==1){
      continue;
    }
    else{
      cout << i << endl;
      return 0;
    }
  }
  cout << -1 << endl;
  return 0;
}
#include <bits/stdc++.h>
using namespace std;

int prime_factors(long long x){
    set<int>s;
    if(x%2 == 0){
        s.insert(2);
        while(x%2 == 0){
            x /= 2;
        }
    }
    for(int i = 3; i <= sqrt(x); i++){
        if(x%i == 0){
            s.insert(i);
            while(x%i == 0){
                x/= i;
            }
        }
    }
    if(x > 1){
        s.insert(x);
    }
    
    return s.size();
    
}


int main(){
    
    long long a, b;
    cin >> a >> b;
    long long g = __gcd(a, b);
    
    long long factors = prime_factors(g);
    
    cout << factors + 1 << endl;
}
