//
// main.cpp
// test
//
// Created by Jacky Roth on 2019/2/22.
// Copyright © 2019 Jacky Roth. All rights reserved.
//
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <string>
#include <math.h>
#include <vector>
#include <queue>
#include <algorithm>
using namespace std;
struct stu {
string ID;
int in,out;
stu(string a,int b,int c):ID(a),in(b),out(c){};
};
vector<stu>res;
bool cmp1(stu a,stu b){
return a.in<b.in;
}
bool cmp2(stu a,stu b){
return a.out>b.out;
}
int main(int argc, const char * argv[]) {
int M,hh,mm,ss,in,out;
scanf("%d",&M);
string ID;
for (int i=0; i<M; i++) {
cin>>ID;
scanf("%d:%d:%d",&hh,&mm,&ss);
in=3600*hh+60*mm+ss;
scanf("%d:%d:%d",&hh,&mm,&ss);
out=3600*hh+60*mm+ss;
res.push_back(stu(ID, in, out));
}
sort(res.begin(), res.end(), cmp1);
cout<<res[0].ID<<" ";
sort(res.begin(), res.end(), cmp2);
cout<<res[0].ID<<endl;
return 0;
}