#include<stdio.h>
#include<string.h>
struct member
{
char name[35];
char po[20];
long long co;
int gr;
};
int main()
{
int i, j,k=0, n, pom[8] = {1,2,2,4,7,25,10000 },s=0;
struct member me[120] = { 0 };
char po[8][15] = { "BangZhu","FuBangZhu","HuFa","ZhangLao","TangZhu","JingYing","BangZhong" }, position[120][20] = { 0 };
scanf("%d", &n);
for (i = 0; i < n; i++)
scanf("%s%s%lld%d", me[i].name, position[i], &me[i].co, &me[i].gr);
for(i=0;i<n-3;i++)
for(j=0;j<n-4-i;j++)
{
if (me[j+3].co < me[j + 4].co)
{
struct member te;
te = me[j+3];
me[j+3] = me[j + 4];
me[j + 4] = te;
}
}
for (i = 0; i < n; i++)
{
for (j = i; j - i < pom[s] && j < n; j++)
{
strcpy(me[j].po, po[s]);
}
i = i + pom[s] - 1;
s = s + 1;
}
int target = 3;
for (i = 3; i < n ; i++)
{
if (strcmp(me[i].po,me[i + 1].po)!=0||i+1==n )
{
for (j = 0; j < i-target; j++)
{
for (k = 0; k < i-target-j; k++)
{
if (me[k+target].gr < me[k + 1+target].gr)
{
struct member r;
r = me[k+target];
me[k+target] = me[k + 1+target];
me[k + 1+target] = r;
}
}
}
target = i+1;
}
}
for (i = 0; i < 9; i++)
printf("%s %s %d\n", me[i].name,me[i].po, me[i].gr);
return 0;
}