#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char s[7][30]= {"BangZhu", "FuBangZhu", "HuFa", "ZhangLao", "TangZhu", "JingYing", "BangZhong"};
struct person
{
char name[50];
char position[30];
int banggong;
int rank;
};
int compare_1(const void *a, const void *b)
{
struct person *A=(struct person *)a;
struct person *B=(struct person *)b;
return B->banggong-A->banggong;
}
int compare_2(const void *a, const void *b)
{
struct person *A=(struct person *)a;
struct person *B=(struct person *)b;
return B->rank-A->rank;
}
int main()
{
struct person a[5000];
int n, i, count;
scanf("%d", &n);
for(i=0; i<n; i++)
scanf("%s%s%d%d", a[i].name, a[i].position, &a[i].banggong, &a[i].rank);
qsort(a+3, n-3, sizeof(struct person), compare_1);
count=3;
while(count<n)
{
if(count>=3&&count<5)
strcpy(a[count].position, s[2]);
else if(count>=5&&count<9)
strcpy(a[count].position, s[3]);
else if(count<=9&&count<16)
strcpy(a[count].position, s[4]);
else if(count<=16&&count<41)
strcpy(a[count].position, s[5]);
else
strcpy(a[count].position, s[6]);
count++;
}
if(n>3)
qsort(a+3, 2, sizeof(struct person), compare_2);
if(n>5)
qsort(a+5, 4, sizeof(struct person), compare_2);
if(n>9)
qsort(a+9, 7, sizeof(struct person), compare_2);
if(n>16)
qsort(a+16, 25, sizeof(struct person), compare_2);
if(n>41)
qsort(a+41, n-41, sizeof(struct person), compare_2);
for(i=0; i<n; i++)
printf("%s %s %d\n", a[i].name, a[i].position, a[i].rank);
return 0;
}