#include <iostream>
#include <algorithm>
#include <cstdio>
#include <map>
using namespace std;
map < string, int > mp;
struct man {
string name, zhiwei;
int gong, ji, shuru;
} a[20000];
void print(int index);
void input(int index);
bool cmp1(man x, man y);
bool cmp2(man x, man y);
int n;
string zhi[] = {"HuFa", "ZhangLao", "TangZhu", "JingYing", "BangZhong"};
int in[] = {1, 3, 7, 14, 39, 200};
int main() {
freopen(".txt", "w", stdout);
for (int i = 0; i < 5; i++) {
mp[zhi[i]] = i;
}
cin >> n;
while (true) {
input(1);
if (a[1].zhiwei == "BangZhu" || a[1].zhiwei == "FuBangZhu")
print(1);
else
break;
n--;
}
for (int i = 2; i <= n; i++) {
input(i);
}
stable_sort(a + 1, a + n + 1, cmp1);
for (int i = 0; i < 5; i++) {
for (int j = in[i]; j < in[i + 1]; j++) {
a[j].zhiwei = zhi[i];
}
}
stable_sort(a + 1, a + n + 1, cmp2);
for (int i = 1; i <= n; i++) {
print(i);
}
return 0;
}
void print(int index) {
cout << a[index].name << ' ';
cout << a[index].zhiwei << ' ';
cout << a[index].ji << endl;
}
void input(int index) {
cin >> a[index].name >> a[index].zhiwei;
cin >> a[index].gong >> a[index].ji;
a[index].shuru = index;
}
bool cmp1(man x, man y) {
return x.gong > y.gong;
}
bool cmp2(man x, man y) {
int ix = mp[x.zhiwei];
int iy = mp[y.zhiwei];
if (ix != iy)
return ix < iy;
if (x.ji != y.ji)
return x.ji > y.ji;
return x.shuru < y.shuru;
}