#include <bits/stdc++.h>
using namespace std;
int main(){
    int N,M;
    cin>>N>>M;
    
    vector<pair<int,int>> r(M);
    for(int i=0;i<N;++i){
        int s,c;
        cin>>s>>c;
        --s;
        r[i]=make_pair(s,c);
    }
    sort(r.begin(),r.end(),);
    r.erase(unique(r.begin(),r.end()),r.end());
    
    bool ok=adjacent_find(r.begin(),r.end(),[](auto a,auto b){return a.first==b.first;})==r.end();

    if(!ok){
        cout<<"-1"<<endl;
    }else{
        string ans=string(N,'0');
        if(N!=1)ans[0]='1';
        for(const auto &x:r){
            cout<<x.first<<" "<<x.second<<endl;
            ans[x.first]=x.second+'0';
        }
        if(ans[0]=='0')cout<<"-1"<<endl;
        else cout<<ans<<endl;
    }
}
