#include<stdio.h>
#include<string.h>
/*
思路:
1.创建结构性变量pNode,内部成员为id和时间;
2.创建比较函数great(a,b),a的时间>b的时间话返回true;
3.输入时,把签到时间和签退时间分开录入,录入签到时间时,利用比较函数great()来获得答案;
*/
using namespace std;
struct pNode{
char id[16];
int hh,mm,ss;
}temp,ans1,ans2; //ans1保存答案1,ans2保存答案2
bool great(pNode a,pNode b){ //a的时间大于b的时间返回true
if(a.hh != b.hh) return a.hh>b.hh;
if(a.mm != b.hh) return a.mm>b.mm;
return a.ss >=b.ss;
}
int main(){
int n;
scanf("%d",&n);
ans1.hh = 24; ans1.mm = 60; ans1.ss = 60; //初始化签到时间为最大值
ans2.hh = 0; ans2.mm = 0; ans2.ss = 0; //初始化签退时间为最小值
for(int i=0;i<n;i++){
scanf("%s %d:%d:%d",temp.id,&temp.hh,&temp.mm,&temp.ss);
if(great(ans1,temp)) ans1 = temp;
scanf("%d:%d:%d",&temp.hh,&temp.mm,&temp.ss);
if(great(temp,ans2)) ans2 = temp;
}
printf("%s %s",ans1.id,ans2.id);
return 0;
}