#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
typedef struct
{
string id;
string in;
string out;
}node;
bool com1(node p1,node p2)
{
if((p1.in[0]-'0')*10+p1.in[1]-'0'<(p2.in[0]-'0')*10+p2.in[1]-'0')
return 1;
else if((p1.in[0]-'0')*10+p1.in[1]-'0'==(p2.in[0]-'0')*10+p2.in[1]-'0')
{
if((p1.in[3]-'0')*10+p1.in[4]-'0'<(p2.in[3]-'0')*10+p2.in[4]-'0')
return 1;
else if((p1.in[3]-'0')*10+p1.in[4]-'0'==(p2.in[3]-'0')*10+p2.in[4]-'0')
{
if((p1.in[6]-'0')*10+p1.in[7]-'0'<(p2.in[6]-'0')*10+p2.in[7]-'0')
return 1;
}
}
return 0;
}
bool com2(node p1,node p2)
{
if((p1.out[0]-'0')*10+p1.out[1]-'0'<(p2.out[0]-'0')*10+p2.out[1]-'0')
return 1;
else if((p1.out[0]-'0')*10+p1.out[1]-'0'==(p2.out[0]-'0')*10+p2.out[1]-'0')
{
if((p1.out[3]-'0')*10+p1.out[4]-'0'<(p2.out[3]-'0')*10+p2.out[4]-'0')
return 1;
else if((p1.out[3]-'0')*10+p1.out[4]-'0'==(p2.out[3]-'0')*10+p2.out[4]-'0')
{
if((p1.out[6]-'0')*10+p1.out[7]-'0'<(p2.out[6]-'0')*10+p2.out[7]-'0')
return 1;
}
}
return 0;
}
bool cmp1(node p1,node p2)
{
return com1(p1,p2);
}
bool cmp2(node p1,node p2)
{
return com2(p1,p2);
}
int main()
{
int N;
cin>>N;
int i;
vector<node>arr(N);
for(i=0;i<N;i++)
{
cin>>arr[i].id>>arr[i].in>>arr[i].out;
}
sort(arr.begin(),arr.end(),cmp1);
cout<<arr[0].id;
sort(arr.begin(),arr.end(),cmp2);
cout<<" "<<arr[N-1].id;
return 0;
}