#include<bits/stdc++.h>
using namespace std;
int n;//n个人 
struct cj {
	int xh;//学号
	string mz;//姓名
	float fs;//分数 
}a[200];
int main(){
	cin>>n; 
	for(int i=1;i<=n;i++){
		cin>>a[i].xh>>a[i].mz>>a[i].fs;
	}
	//冒泡排序
	for(int i=1 ;i<=n-1  ;i++){
		for(int j=1  ;j<=n-i  ;j++){
			if(a[j].fs<a[j+1].fs||(a[j].fs==a[j+1].fs&&a[j].xh>a[j+1].xh)){
				swap( a[j],a[j+1] );
			}
		}
	}
	//输出验证
	for(int i=1;i<=n;i++){
		cout<<a[i].xh<<" "<<a[i].mz<<" "<<a[i].fs<<endl;
	}
	
	
	
	
	
	
	 
	return 0;
}

/**************************************************************
	Problem: 1414
	User: hulaoshi
	Language: C++
	Result: Accepted
	Time:18 ms
	Memory:2088 kb
****************************************************************/