#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <string>
#include <cmath>
#include <math.h>
#include <vector>
#include <queue>
#include <map>
#include <set>
#include <stack>
#define lowbit(i)((i)&(-i))
using namespace std;
typedef long long ll;
const int MAX=1e5+10;
const int INF=0x3f3f3f3f;
const int MOD=1000000007;
const int SQR=633;
struct node
{
string id;
int in;
int out;
};
vector<node>vt;
bool cmp(node a,node b)
{
return a.in<b.in;
}
bool cmp2(node a,node b)
{
return a.out>b.out;
}
int main()
{
int n;
scanf("%d",&n);
for(int i=0;i<n;i++)
{
node temp;
string id;
cin>>id;
int h,m,s,in;
scanf("%d:%d:%d",&h,&m,&s);
in=h*3600+m*60+s;
int h2,m2,s2,out;
scanf("%d:%d:%d",&h2,&m2,&s2);
out=h2*3600+m2*60+s2;
temp.id=id;
temp.in=in;
temp.out=out;
vt.push_back(temp);
}
sort(vt.begin(),vt.end(),cmp);
cout<<vt[0].id<<" ";
sort(vt.begin(),vt.end(),cmp2);
cout<<vt[0].id<<endl;
return 0;
}