        #include <bits/stdc++.h>
        using namespace std;
        typedef long long ll;
        typedef long double ld;
        typedef pair<ll, ll> l_l;
        typedef pair<int , int> i_i;
        typedef vector<ll> vl;
        typedef vector<int> vi;
        typedef vector<char> vec;
        typedef vector<bool> veb;
        typedef vector<string> ves;
        typedef vector<vector<ll>> vvl;
        typedef vector<vector<int>> vvi;
        typedef vector<vector<char>> vvec;
        typedef vector<vector<bool>> vveb;
        typedef vector<vector<string>> vves;
        #define rep(i,n) for(int i=0;i<(int)(n);i++)
        #define rep1(i,n) for(int i=1;i<(int)(n);i++)
        #define rep2(i,n) for(int i=2;i<(int)(n);i++)
        #define repk(i,k,n) for(int i=k;i<(int)(n);i++)
        #define fs first
        #define sc second
        #define pb push_back
        #define pp pop_back
        #define all(a) a.begin(),a.end()
        #define rall(a) a.rbegin(),a.rend()
        #define maxel(a) *max_element(all(a))
        #define minel(a) *min_element(all(a))
        #define acc accumulate
        #define EPS (1e-7)
        #define INF (1e9)
        #define PI (acos(-1))
        #define mod (1000000007)
        typedef long long int64;
        //const int64 INF = 1LL << 58;
        #define dame { puts("-1"); return 0;}
        #define YES { cout << "YES" << endl; return 0; }
        #define NO { cout << "NO" << endl; return 0; }
        #define Yes { cout << "Yes" << endl; return 0; }
        #define No { cout << "No" << endl; return 0; }
        template<class T> bool chmax(T &a, const T &b) { if (a<b) { a=b; return 1; } return 0; }
        template<class T> bool chmin(T &a, const T &b) { if (a>b) { a=b; return 1; } return 0; }
        int dx[] = {0, 0, -1, 1};
        int dy[] = {1, -1, 0, 0};
         
        int main(){
        	cin.tie(0);
        	ios::sync_with_stdio(false);

	int n =0 ;
	int m =0 ;

	cin >>  n;
	cin >>  m;
	
	vi s(m);
	vi c(m);
	vi ans(n);
	int a = 0;
	rep(i,m){
	cin >> s.at(i);
	cin >> c.at(i);
	}
	rep(i,m){
	if(s.at(i) == 1 && c.at(i) == 0 && n != 1){
		dame 
	}
	}
	rep(i,m){
		repk(j,i+1,m){
			if(s.at(i) == s.at(j) && c.at(i) != c.at(j)){dame}
		}
	}
	rep(i,m){
		ans.at(n - s.at(i)) = c.at(i);
	}

	if(n==3){
		a = ans.at(0)*100+ans.at(1)*10+ans.at(2);
		cout << a << endl;
	}
	if(n==2){
		a = ans.at(0)*10+ans.at(1);
		cout << a << endl;
	}
	if(n==1){
		cout << ans.at(0) << endl;
	}
	

          	return 0;
        }