#include <iostream>
#include <fstream>
#include <string>
#include <vector>
#include <queue>
#include <map>
#include <cmath>
#include <algorithm>
#include <random>
#include <chrono>
#include <iomanip>
#include <numeric>
#define lint unsigned long long int
#define FOR(x, to) for(int x=0; x<(int)(to); x++)
#define DUMP(ar) for(auto itd=begin(ar); itd != end(ar); itd++) cout << "["s << itd - begin(ar) << "]:"s << *itd << endl
#define DUMPL(ar) for(auto itd=begin(ar); itd != end(ar); itd++) { cout << *itd; if(end(ar)-itd > 1) cout << ' '; } cout << endl
#define COUT(x) cout << (x) << endl
#define VCIN(ar) for(auto &vcin: (ar)) cin >> vcin
#define ALL(ar) ar.begin(), ar.end()
#define LOOPD(i) cout << "ループ["s << i << "]回目---------------"s << endl
using namespace std;
// lint:64ビット 10^19

int main(){
    cin.tie(0);
    ios::sync_with_stdio(false);

    int n, m;
    cin >> n >> m;
    vector<int> s(m), c(m);
    for(int i=0; i<m; i++){
        cin >> s[i] >> c[i];
    }

    string str(n, '0');
    for(int i=0; i<m; i++){
        if(str[s[i]-1] != '0' && str[s[i]-1] - '0' != c[i]){
            COUT("-1");
            return 0;
        }
        str[s[i]-1] = c[i] + '0';
    }

    if(n >= 2 && str[0] == '0'){
        str[0] = '1';
    }

    COUT(str);

    return 0;
}