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

int main(){
    // word[s] で 文字列sの出現回数が返ってくる
    map<string, int> word;
    vector<string> v;
    string s;
    
    while( cin >> s ){
        v.push_back(s);
        
        //入力した単語がすでにあるか探す
        // countはすでに文字列sがキーとして存在すれば1が、そうでなければ0が返ってくる
        if( word.count(s) ){ 
            word[s]++;
        }else{
            word[s] = 1;
        }
    }
    // 最頻出の単語を調べる
    int mode = 0;
    for(int i=0 ; i < v.size() ; i++ ){
        mode = max( mode , word[ v[i] ] );
    }
    for(int i=0 ; i < v.size() ; i++ ){
        if( mode == word[ v[i] ] ){
            cout << v[i];
            break;
        }
    }
    // 最長の単語を求める
    int length = 0;
    for(int i=0 ; i < v.size() ; i++ ){
        // v[i].size()で返ってくる数値はint型でなくsize_t型なので注意！
        length = max( length , (int)v[i].size() );
    }
    for(int i=0 ; i < v.size() ; i++ ){
        if( length == v[i].size() ){
            cout << " " << v[i] << endl;
        }
    }
}