#include <bits/stdc++.h>
using namespace std;
const int N = 2000;
map<string, int> m;
struct el {
  string s;
  int x;
};
bool operator<(el A, el B) { return (A.s < B.s); }
el a[N];
string s;
int x;
int n, met[N], nak[N], tol[N], z;
string f(int k) {
  if (met[k] * 100 <= z) return "pro";
  if (met[k] * 10 <= z) return "hardcore";
  if (met[k] * 5 <= z) return "average";
  if (met[k] * 2 <= z) return "random";
  return "noob";
}
int main() {
  cin >> n;
  for (int i = 0; i < n; i++) {
    cin >> s >> x;
    if (!m[s]) {
      z++;
      m[s] = z;
      a[z].x = x;
      a[z].s = s;
    } else
      a[m[s]].x = max(a[m[s]].x, x);
  }
  sort(a + 1, a + z + 1);
  for (int k = 1; k <= z; k++)
    for (int i = 1; i <= z; i++) {
      if (a[i].x > a[k].x) met[k]++;
      if (a[i].x < a[k].x) nak[k]++;
      if (a[i].x == a[k].x) tol[k]++;
    }
  cout << z << endl;
  for (int k = 1; k <= z; k++) cout << a[k].s << " " << f(k) << endl;
}
