#include <map>#include <set>#include <list>#include <queue>#include <deque>#include <stack>#include <string>#include <time.h>#include <cstdio>#include <math.h>#include <iomanip>#include <cstdlib>#include <limits.h>#include <string.h>#include <iostream>#include <fstream>#include <algorithm>using namespace std;#define LL long long#define MIN INT_MIN#define MAX INT_MAX#define pii pair<int ,int>#define bug cout<<"here!!"<<endl#define PI acos(-1.0)#define FRE freopen("input.txt","r",stdin)#define FF freopen("output.txt","w",stdout)#define eps 1e-8#define N 3005struct node{ string str; int w; int h;}p[N];bool cmp(node a,node b){ return a.w<b.w;}int main(){ int n; cin>>n; int i,j; for(i=1;i<=n;i++){ cin>>p[i].str>>p[i].w; } sort(p+1,p+n+1,cmp); for(i=1;i<=n;i++){ if(p[i].w>=i){ break; } else { for(j=1;j<i;j++){ if(p[j].h>=i-p[i].w){ p[j].h++; } } p[i].h = i-p[i].w; } } if(i>n){ for(i=1;i<=n;i++){ cout<<p[i].str<<" "<<p[i].h<<endl; } } else { cout<<-1<<endl; } return 0;}