#include<iostream>
#include<string>
#include<map>
#include<algorithm>
using namespace std;

int main(){
  string s;
  map<string,int> m;
  while(cin>>s){
    if(m.find(s)==m.end()){
      m[s]=1;
    }else{
      m[s]+=1;
    }
  }
  int max_len=0;
  int max_frequency=0;
  //イテレータに不等号は使えない
  //ポインタなら使えるので勘違いした
  //max_len、max_frequencyにそれぞれペアを入れればfor文を三回回す必要がないかと思ったが、pairの作成に時間がかかるので、三回回しても大して時間はかからないと判断した
  for(auto i=m.begin();i!=m.end();i++){
    max_len=max(max_len,(int)((i->first).length()));//stringのlengthはsize_t型
    max_frequency=max(max_frequency,i->second);
  }
  for(auto i=m.begin();i!=m.end();i++){
    if(i->second==max_frequency){
      cout << i->first << " ";
      break;
    }
  }
  for(auto i=m.begin();i!=m.end();i++){
    if((int)((i->first).length())==max_len){
      cout << i->first << endl;
      break;
    }
  }
}

