/*
#include <stdio.h>
int main()
{
int n,i,o,m,t,f,h,s=0,j,g,temp;
int a[50001]= {},l[50001]= {};
scanf("%d",&n);
for(i=0; i<n; i++)
{
scanf("%d",&a[i]);
l[i]=a[i];
}
for(i=0; i<n; i++)
{
s=0;
for(j=0; j<n; j++)
{
if (a[j] > a[j+1])
{
s+=1;
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
if(s==0)
{
break;
}
}
for(i=0; i<n; i++)
{
for(j=0; j<n+1; j++)
{
if(l[i]==a[j])
{
printf("%d ",j-1);
}
}
}
}
quick_sort -> qsort
// 퀵정렬 직접 구현
void qsort(int s, int e)
{
if(s>=e)
{
return ;
}
int pivot = s,k=0;
int left = s+1;
int right = e;
while(left<right)
{
while(a[left]<a[pivot])
{
left++;
}
while(a[right]>a[pivot])
{
right--;
}
if(right<left)
{
break;
}
k=a[right];
a[right]=a[left];
a[left]=k;
}
k=a[right];
a[right]=a[pivot];
a[pivot]=k;
//arr[pivot]보다 작은 수들 .... arr[pivot] .... arr[pivot]보다 큰수 들
view();
qsort(s,right-1);
qsort(right+1,e);
}
내장 퀵정렬 # include <stdlib.h>
qsort(배열이름, 배열길이, 데이터크기, 비교함수);
#include <stdio.h>
#include <stdlib.h>
int a[100]={5,7,3,10,2,1};
void view()
{
for(int i=0;i<6;i++)
{
printf("%d ",a[i]);
}
printf("\n");
}
// 내림차순? or 오름차순
int compare(int* pa, int* pb)
{
if(*pa<*pb) return 1;
else if(*pa>*pb) return -1;
else return 0;
}
int main()
{
view();
qsort(a,6,sizeof(int),compare);
view();
return 0;
}
*/
//
//#include <stdio.h>
//#include <stdlib.h>
//int a[50001]= {},n,i,s[50001]={},j;
//int f(int* pa, int* pb)
//{
// if(*pa>*pb)
// return 1;
//
// else if(*pa<*pb)
// return -1;
//
// else
// return 0;
//}
//int main()
//{
// scanf("%d",&n);
// for(i=0; i<n; i++)
// {
//
// scanf("%d",&a[i]);
// s[i]=a[i];
// }
// qsort(a,n,sizeof(int),f);
// for(i=0;i<n;i++)
// {
// for(j=0;j<n+1;j++)
// {
// if(s[i]==a[j])
// {
// printf("%d ",j);
// }
// }
// }
// return 0;
//}
#include <stdio.h>
typedef struct
{
char s[110];
int a;
int arr;
int k;
}sangyu;
int main()
{
sangyu t[1000],temp;
int i,n,j;
scanf("%d\n",&n);
for(i=0;i<n;i++)
{
scanf(" %s %d %d %d",t[i].s,&t[i].a,&t[i].arr,&t[i].k);
}
for(i=0;i<n;i++)
{
for(j=0;j<n-i;j++)
{
if (t[j].a < t[j+1].a)
{
temp = t[j];
t[j] = t[j+1];
t[j+1] = temp;
}
else if(t[j].a==t[j+1].a&&t[j].arr<t[j+1].arr)
{
temp = t[j];
t[j] = t[j+1];
t[j+1] = temp;
}
else if(t[j].a==t[j+1].a&&t[j].arr==t[j+1].arr&&t[j].k<t[j+1].k)
{
temp = t[j];
t[j] = t[j+1];
t[j+1] = temp;
}
else if(t[j].a==t[j+1].a&&t[j].arr==t[j+1].arr&&t[j].k==t[j+1].k&&t[j].s<t[j].s)
{
temp = t[j];
t[j] = t[j+1];
t[j+1] = temp;
}
}
}
for(i=n;i>=0;i--)
{
printf("%s\n",t[i].s);
}
}