#include <bits/stdc++.h>
using namespace std;
map<string, int >mp;
struct ren {
string name, job;
int banggong, dengji, id;
} a[120];
bool cmp(ren x, ren y) {
if (x.banggong == y.banggong) {
return x.id < y.id;
}
return x.banggong > y.banggong;
}
bool cmp2(ren x, ren y) {
if (mp[x.job] == mp[y.job]) {
if (x.dengji == y.dengji) {
return x.id < y.id;
}
return x.dengji > y.dengji;
}
return mp[x.job] < mp[y.job];
}
int main() {
ios::sync_with_stdio(false);
cin.tie(0);
mp["BangZhu"] = 1;
mp["FuBangZhu"] = 3;
mp["HuFa"] = 5;
mp["ZhangLao"] = 9;
mp["TangZhu"] = 14;
mp["JingYing"] = 39;
int n;
cin >> n;
for (int i = 0; i < n; i++) {
cin >> a[i].name >> a[i].job >> a[i].banggong >> a[i].dengji;
a[i].id = i;
}
sort(a + 3, a + n, cmp);
for (int i = 0; i < n; i++) {
if (i < mp["BangZhu"]) {
a[i].job = "BangZhu";
} else if (i < mp["FuBangZhu"]) {
a[i].job = "FuBangZhu";
} else if (i < mp["HuFa"]) {
a[i].job = "HuFa";
} else if (i < mp["ZhangLao"]) {
a[i].job = "ZhangLao";
} else if (i < mp["TangZhu"]) {
a[i].job = "TangZhu";
} else if (i < mp["JingYing"]) {
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].dengji << "\n";
}
return 0;
}