#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;

struct STU
{
	char name[101];
	int age,mark;
}stu[1000];

bool cmp(STU a,STU b)
{
	if(a.mark<b.mark)
		return true;
	else if(a.mark>b.mark)
		return false;
	else
	{
		if(!strcmp(a.name,b.name))
			return a.age<b.age;
		return strcmp(a.name,b.name)<0?true:false;
	}
}

int main()
{
	int n,i;
	while(scanf("%d",&n)!=EOF)
	{
		for(i=0;i<n;i++)
			scanf("%s%d%d",stu[i].name,&stu[i].age,&stu[i].mark);
		sort(stu,stu+n,cmp);
		for(i=0;i<n;i++)
			printf("%s %d %d\n",stu[i].name,stu[i].age,stu[i].mark);
	}
	return 0;
}
/**************************************************************
	Problem: 2198
	User: admin
	Language: C++
	Result: Accepted
	Time:13 ms
	Memory:1260 kb
****************************************************************/