import java.io.*;
import java.util.*;
public class MaxLength { //找出长度最长的单词
static void max(int a[],String mystr[]){
String[] sigstr;
int max=a[0];
for(int i=0;i<a.length;i++){
if(a[i]>max)max=a[i];
}
//System.out.println(max);
for(int i=0;i<a.length;i++){ //找出最长单词的下标及输出
if(a[i]==max)System.out.println("长度最长的单词是:"+mystr[i]);
}
}
static void nums(String mystr[]){ //找出出现次数最多的单词,并输出
int []a=new int[mystr.length];
for(int i=1;i<mystr.length;i++){
a[i]=1;
}
for(int i=1;i<mystr.length;i++)
for(int j=i-1;j>=0;j--){
if(mystr[i].equals(mystr[j]))a[i]++;
}
int max=a[0];
for(int i=0;i<a.length;i++){
if(a[i]>max)max=a[i];
}
//System.out.println(max);
for(int i=0;i<a.length;i++){
if(a[i]==max)System.out.println("出现次数最多的单词是:"+mystr[i]);
}
}
public static void main(String[] args)throws Exception {
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String strs=br.readLine();
String[] mystr=strs.split(" "); //输入一串单词,用空格隔开,在此把每个单词存入数组中
int[] a=new int[mystr.length];
for(int i=0;i<mystr.length;i++){
a[i]=0;
}
for(int i=0;i<mystr.length;i++){
a[i]=mystr[i].length();
}
max(a,mystr); //找出长度最长的单词
nums(mystr); //找出出现次数最多的单词,并输出
}
}
import java.util.*;
public class MaxLength { //找出长度最长的单词
static void max(int a[],String mystr[]){
String[] sigstr;
int max=a[0];
for(int i=0;i<a.length;i++){
if(a[i]>max)max=a[i];
}
//System.out.println(max);
for(int i=0;i<a.length;i++){ //找出最长单词的下标及输出
if(a[i]==max)System.out.println("长度最长的单词是:"+mystr[i]);
}
}
static void nums(String mystr[]){ //找出出现次数最多的单词,并输出
int []a=new int[mystr.length];
for(int i=1;i<mystr.length;i++){
a[i]=1;
}
for(int i=1;i<mystr.length;i++)
for(int j=i-1;j>=0;j--){
if(mystr[i].equals(mystr[j]))a[i]++;
}
int max=a[0];
for(int i=0;i<a.length;i++){
if(a[i]>max)max=a[i];
}
//System.out.println(max);
for(int i=0;i<a.length;i++){
if(a[i]==max)System.out.println("出现次数最多的单词是:"+mystr[i]);
}
}
public static void main(String[] args)throws Exception {
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String strs=br.readLine();
String[] mystr=strs.split(" "); //输入一串单词,用空格隔开,在此把每个单词存入数组中
int[] a=new int[mystr.length];
for(int i=0;i<mystr.length;i++){
a[i]=0;
}
for(int i=0;i<mystr.length;i++){
a[i]=mystr[i].length();
}
max(a,mystr); //找出长度最长的单词
nums(mystr); //找出出现次数最多的单词,并输出
}
}