#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1e5 + 10;
const int MOD = 1e9 + 7;
const int INF = 0x3f3f3f3f;
struct Node {
  char name[20];
  int h, ans;
};
Node num[3010];
bool cmp(Node a, Node b) { return a.h < b.h; }
int main() {
  int n;
  while (scanf("%d", &n) != EOF) {
    for (int i = 1; i <= n; i++) {
      scanf("%s%d", num[i].name, &num[i].h);
    }
    sort(num + 1, num + n + 1, cmp);
    bool flag = true;
    for (int i = 1; i <= n; i++) {
      if (num[i].h > i - 1) {
        flag = false;
        break;
      }
      num[i].ans = i - num[i].h + 1;
      for (int j = 1; j < i; j++) {
        if (num[j].ans >= num[i].ans) {
          num[j].ans++;
        }
      }
    }
    if (!flag) {
      printf("-1\n");
    } else {
      for (int i = 1; i <= n; i++) {
        printf("%s %d\n", num[i].name, num[i].ans);
      }
    }
  }
  return 0;
}
