#include <iostream>
#include <bits/stdc++.h>
using namespace std;
typedef long long int ll;
#define PI  3.14159265358979323846
#define M   1000000007
ll fast(ll n,ll a,ll m)
{
    if(n==0)
        return 1;
    else if(n==1)
        return a;
    else
    {
        ll r=fast(n/2,a,m);
        if(n%2==0)
        {
            return (((r%m)*(r%m))%m);
        }
        else
        {
            return (((((r%m)*a)%m)*r)%m);
        }
    }
}
ll lcm(ll a,ll b)
{
    ll p=a*b;
    p/=__gcd(a,b);
    return p;
}
ll solve(ll z,ll p,ll q,ll n)
{
    ll g=n/z;
    if(g<p)
    {
        return -1;
    }
    else
    {
       g-=p;
       if(g%q==0)
       {
           g/=q;
           return (z+g);
       }
       else
       {
           return -1;
       }
    }
}
int main()
{
    int n,m;
    cin>>n>>m;
    map<int,vector<int> > b;
    int pos[m],dt[m];
    int i;
    for(i=0;i<m;i++)
    {
         cin>>pos[i]>>dt[i];
         b[pos[i]].push_back(dt[i]);
    }
    if(n==1)
    {
       if(m==0)
            cout<<0;
       else
         cout<<b[1][0];
    }
    else
    {
    map<int,vector<int> > ::iterator it;
    int bc[n+1]={0},ok=1;
    for(it=b.begin();it!=b.end();it++)
    {
        int p=it->first;
        int d=b[p][0],rk=1;
        for(int j=0;j<b[p].size();j++)
        {
            if(b[p][j]!=d)
            {
                rk=0;
                break;
            }
        }
        if(rk==0)
        {
            ok=0;
            break;
        }
        else
        {
            bc[p]=d;
        }
    }
    if(ok==1)
    {
        for(i=0;i<m;i++)
        {
            if(pos[i]==1&&dt[i]==0)
            {
                ok=0;
                break;
            }
        }
        if(ok==0)
            cout<<-1;
        else
        {
            if(bc[1]==0)
            {
                bc[1]=1;
            }
            for(i=1;i<=n;i++)
                cout<<bc[i];
        }
    }
    else
    {
        cout<<-1;
    }
    }






}
