#include <iostream>
#include <algorithm>
using namespace std;
struct peo
{
string name, job;
long long contribution, level, order;
}a[115];
int cmp1(peo a, peo b)
{
if (a.contribution != b.contribution) return a.contribution > b.contribution;
return a.order < b.order;
}
int cmp2(peo a, peo b)
{
if (a.job == b.job)
{
if (a.level != b.level) return a.level > b.level;
return a.order < b.order;
}
else return false;
}
int main()
{
int n;
cin >> n;
for (int i = 0; i < n; i++)
{
cin >> a[i].name >> a[i].job >> a[i].contribution >> a[i].level;
a[i].order = i;
}
sort(a+3, a+n, cmp1);
for (int i = 3; i < n; i++)
{
if (i >= 3 && i <= 4) a[i].job = "HuFa";
else if (i >= 5 && i <= 8) a[i].job = "ZhangLao";
else if (i >= 9 && i <= 15) a[i].job = "TangZhu";
else if (i >= 16 && i <= 40) a[i].job = "JingYing";
else a[i].job = "BangZhong";
}
sort(a, a+n, cmp2);
for (int i = 0; i < n; i++)
{
cout << a[i].name << ' ' << a[i].job << ' ' << a[i].level << endl;
}
return 0;
}