#include <bits/stdc++.h>
using namespace std;
struct node {
  int pre;
  char a[110];
};
node p[3010];
int ans[3010];
bool cmp(const node &a, const node &b) { return a.pre < b.pre; }
int main() {
  int n;
  while (scanf("%d", &n) == 1) {
    for (int i = 0; i < n; i++) scanf("%s%d", p[i].a, &p[i].pre);
    sort(p, p + n, cmp);
    bool sol = true;
    for (int i = 0; i < n && sol; i++) {
      if (p[i].pre > i) sol = false;
      for (int j = 0; j < n; j++)
        if (ans[j] >= (i + 1 - p[i].pre)) ans[j]++;
      ans[i] = (i + 1 - p[i].pre);
    }
    if (!sol) {
      puts("-1");
      continue;
    }
    for (int i = 0; i < n; i++) printf("%s %d\n", p[i].a, ans[i]);
  }
  return 0;
}
