#include<iostream>
#include<algorithm>
#include<stdlib.h>
#include<string.h>
using namespace std;
struct stu{
char name[20];
char id[20];
char grade[5];
}arr[100];
int main(){
int n;
cin>>n;
for(int i =0;i<n;i++){ // 结构的输入
cin>>arr[i].name;cin>>arr[i].id;cin>>arr[i].grade;
}
int max=atoi(arr[0].grade);
int min =100; // 注意成绩的初始化
char maxname[10]={0};
char minname[10]={0};
for(int i=0;i<n;i++){ // 寻找到最大成绩
if(arr[i].grade[0]=='n') continue;
if(atoi(arr[i].grade)>=max){ max = atoi(arr[i].grade);strcpy(maxname,arr[i].name);}
if(atoi(arr[i].grade)<=min){ min = atoi(arr[i].grade);strcpy(minname,arr[i].name);}
}
int pos =0;
int posmin=0;
for(int j=0;j<n;j++){ 比较所有的成绩 ,逻辑与这里可以不加括号的
if((atoi(arr[j].grade)==max)&&(strcmp(arr[j].name,maxname)<=0))pos =j;
if((atoi(arr[j].grade)==min)&&(strcmp(arr[j].name,minname)>=0))posmin =j;
}
cout<<arr[pos].name<<" "<<arr[pos].id<<endl;
cout<<arr[posmin].name<<" "<<arr[posmin].id<<endl;
return 0;
}