#include <bits/stdc++.h>
using namespace std;
int n;
struct bp {
string name;
string zwei;
long long bg;
long long dj;
int r;
}a[1001];
map<string, int> mp;
void tz() {
//修改职位
for (int i = 4; i <= 5; ++i) a[i].zwei = "Hufa";
for (int i = 6; i <= 9; ++i) a[i].zwei = "ZhangLao";
for (int i = 10; i <= 16; ++i) a[i].zwei = "TangZhu";
for (int i = 17; i <= 41; ++i) a[i].zwei = "JingYing";
for (int i = 42; i <= n; ++i) a[i].zwei = "BangZhong";
}
bool cmp1(bp x, bp y) {
if (x.bg > y.bg) return true;//排帮贡
if (x.bg < y.bg) return false;
return x.r < y.r;
}
bool cmp2(bp x, bp y) {
if(mp[x.zwei] < mp[y.zwei]) return true;//排职位
if(mp[x.zwei] > mp[y.zwei]) return false;
if(x.dj > y.dj) return true;//排等级
if(x.dj < y.dj) return false;
return x.r < y.r;
}
int main() {
std::ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
mp["BangZhu"] = 1;//帮主
mp["FuBangZhu"] = 2;//副帮主
mp["HuFa"] = 3;//护法
mp["ZhangLao"] = 4;//长老
mp["TangZhu"] = 5;//堂主
mp["JingYing"] = 6;//精英
mp["BangZhong"] = 7;//帮众
cin >> n;
for (int i = 1; i <= n; ++i) {
cin >> a[i].name >> a[i].zwei >> a[i].bg >> a[i].dj;
a[i].r = i;
}
sort(a + 4, a + n + 1, cmp1);
tz();
sort(a + 1, a + n + 1, cmp2);
for (int i = 1; i <= n; ++i) {
cout << a[i].name << ' ' << a[i].zwei << ' ' << a[i].dj << endl;
}
}