#include<bits/stdc++.h>
using namespace std;
using I=int;
using S=string;
const I N=3000;
pair<I,S>ppls[N];
vector<I>inds;
I ress[N];
I main(){
cin.tie(0)->sync_with_stdio(0);
I n;cin>>n;
for(I i=0;i<n;i++){
S nam;I a;cin>>nam>>a;
ppls[i]={a,nam};
}
sort(ppls,ppls+n);
for(I i=0;i<n;i++){
auto[a,nam]=ppls[i];
if(a>i)printf("-1"),exit(0);
inds.insert(inds.begin()+a,i);
}
for(I i=n-1;i>=0;i--)ress[inds[i]]=n-i;
for(I i=0;i<n;i++){
auto[a,nam]=ppls[i];
printf("%s %i\n",nam.c_str(),ress[i]);
}
}
462B - Appleman and Card Game | 1560C - Infinity Table |
1605C - Dominant Character | 1399A - Remove Smallest |
208A - Dubstep | 1581A - CQXYM Count Permutations |
337A - Puzzles | 495A - Digital Counter |
796A - Buying A House | 67A - Partial Teacher |
116A - Tram | 1472B - Fair Division |
1281C - Cut and Paste | 141A - Amusing Joke |
112A - Petya and Strings | 677A - Vanya and Fence |
1621A - Stable Arrangement of Rooks | 472A - Design Tutorial Learn from Math |
1368A - C+= | 450A - Jzzhu and Children |
546A - Soldier and Bananas | 32B - Borze |
1651B - Prove Him Wrong | 381A - Sereja and Dima |
41A - Translation | 1559A - Mocha and Math |
832A - Sasha and Sticks | 292B - Network Topology |
1339A - Filling Diamonds | 910A - The Way to Home |