import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;

//public class atcoder0216_C{
public class Main{
	public static void main(String args[]){
		Scanner scan = new Scanner(System.in);
		List<String> S = new ArrayList<String>();
		List<String> I = new ArrayList<String>();
		List<Integer> C = new ArrayList<Integer>();

		int N = scan.nextInt();
		for(int i=0;i<N;i++) {
			S.add(scan.next());
		}

		Collections.sort(S);

		int j = 0;
		boolean flag = false;
		I.add(S.get(0));

		for(int i =1; i<N; i++) {
			if(S.get(i).equals(S.get(i-1))) {
				flag = true;
				j++;
				if(i==N-1) {
					C.add(j);
				}
			}else if((S.get(i).equals(S.get(i-1)))==false){
				I.add(S.get(i));
				C.add(j);
				j =0;
			}
		}

		if(!flag) {
			C.add(j);
		}

		int x = 0;
		int y = 0;
		List<Integer> max = new ArrayList<Integer>();
		List<String> result = new ArrayList<String>();

		for(int count:C) {
			if(x==0) {
				max.add(C.get(0));
				result.add(I.get(0));
			}else {
				if(max.get(y)==count) {
					result.add(I.get(x));
				}else if(max.get(y)<count) {
					max.clear();
					result.clear();
					max.add(C.get(x));
					result.add(I.get(x));
				}
			}
			x++;
		}

		for(String view:result) {
			System.out.println(view);
		}
		//		}
	}
}
 import java.util.ArrayList; ArrayList java.util import java.util.Collections; Collections java.util import java.util.List; List java.util import java.util.Scanner; Scanner java.util public class Main{
	public static void main(String args[]){
		Scanner scan = new Scanner(System.in);
		List<String> S = new ArrayList<String>();
		List<String> I = new ArrayList<String>();
		List<Integer> C = new ArrayList<Integer>();

		int N = scan.nextInt();
		for(int i=0;i<N;i++) {
			S.add(scan.next());
		}

		Collections.sort(S);

		int j = 0;
		boolean flag = false;
		I.add(S.get(0));

		for(int i =1; i<N; i++) {
			if(S.get(i).equals(S.get(i-1))) {
				flag = true;
				j++;
				if(i==N-1) {
					C.add(j);
				}
			}else if((S.get(i).equals(S.get(i-1)))==false){
				I.add(S.get(i));
				C.add(j);
				j =0;
			}
		}

		if(!flag) {
			C.add(j);
		}

		int x = 0;
		int y = 0;
		List<Integer> max = new ArrayList<Integer>();
		List<String> result = new ArrayList<String>();

		for(int count:C) {
			if(x==0) {
				max.add(C.get(0));
				result.add(I.get(0));
			}else {
				if(max.get(y)==count) {
					result.add(I.get(x));
				}else if(max.get(y)<count) {
					max.clear();
					result.clear();
					max.add(C.get(x));
					result.add(I.get(x));
				}
			}
			x++;
		}

		for(String view:result) {
			System.out.println(view);
		}
		//		}
	}
} Main public static void main(String args[]){
		Scanner scan = new Scanner(System.in);
		List<String> S = new ArrayList<String>();
		List<String> I = new ArrayList<String>();
		List<Integer> C = new ArrayList<Integer>();

		int N = scan.nextInt();
		for(int i=0;i<N;i++) {
			S.add(scan.next());
		}

		Collections.sort(S);

		int j = 0;
		boolean flag = false;
		I.add(S.get(0));

		for(int i =1; i<N; i++) {
			if(S.get(i).equals(S.get(i-1))) {
				flag = true;
				j++;
				if(i==N-1) {
					C.add(j);
				}
			}else if((S.get(i).equals(S.get(i-1)))==false){
				I.add(S.get(i));
				C.add(j);
				j =0;
			}
		}

		if(!flag) {
			C.add(j);
		}

		int x = 0;
		int y = 0;
		List<Integer> max = new ArrayList<Integer>();
		List<String> result = new ArrayList<String>();

		for(int count:C) {
			if(x==0) {
				max.add(C.get(0));
				result.add(I.get(0));
			}else {
				if(max.get(y)==count) {
					result.add(I.get(x));
				}else if(max.get(y)<count) {
					max.clear();
					result.clear();
					max.add(C.get(x));
					result.add(I.get(x));
				}
			}
			x++;
		}

		for(String view:result) {
			System.out.println(view);
		}
		//		}
	} main {
		Scanner scan = new Scanner(System.in);
		List<String> S = new ArrayList<String>();
		List<String> I = new ArrayList<String>();
		List<Integer> C = new ArrayList<Integer>();

		int N = scan.nextInt();
		for(int i=0;i<N;i++) {
			S.add(scan.next());
		}

		Collections.sort(S);

		int j = 0;
		boolean flag = false;
		I.add(S.get(0));

		for(int i =1; i<N; i++) {
			if(S.get(i).equals(S.get(i-1))) {
				flag = true;
				j++;
				if(i==N-1) {
					C.add(j);
				}
			}else if((S.get(i).equals(S.get(i-1)))==false){
				I.add(S.get(i));
				C.add(j);
				j =0;
			}
		}

		if(!flag) {
			C.add(j);
		}

		int x = 0;
		int y = 0;
		List<Integer> max = new ArrayList<Integer>();
		List<String> result = new ArrayList<String>();

		for(int count:C) {
			if(x==0) {
				max.add(C.get(0));
				result.add(I.get(0));
			}else {
				if(max.get(y)==count) {
					result.add(I.get(x));
				}else if(max.get(y)<count) {
					max.clear();
					result.clear();
					max.add(C.get(x));
					result.add(I.get(x));
				}
			}
			x++;
		}

		for(String view:result) {
			System.out.println(view);
		}
		//		}
	} Scanner scan = new Scanner(System.in); scan new Scanner(System.in) List<String> S = new ArrayList<String>(); S new ArrayList<String>() List<String> I = new ArrayList<String>(); I new ArrayList<String>() List<Integer> C = new ArrayList<Integer>(); C new ArrayList<Integer>() int N = scan.nextInt(); N scan.nextInt() scan.nextInt scan for(int i=0;i<N;i++) {
			S.add(scan.next());
		} int i=0; int i=0; i 0 i<N i N i++ i++ i {
			S.add(scan.next());
		} {
			S.add(scan.next());
		} S.add(scan.next()) S.add S scan.next() scan.next scan Collections.sort(S) Collections.sort Collections S int j = 0; j 0 boolean flag = false; flag false I.add(S.get(0)) I.add I S.get(0) S.get S 0 for(int i =1; i<N; i++) {
			if(S.get(i).equals(S.get(i-1))) {
				flag = true;
				j++;
				if(i==N-1) {
					C.add(j);
				}
			}else if((S.get(i).equals(S.get(i-1)))==false){
				I.add(S.get(i));
				C.add(j);
				j =0;
			}
		} int i =1; int i =1; i 1 i<N i N i++ i++ i {
			if(S.get(i).equals(S.get(i-1))) {
				flag = true;
				j++;
				if(i==N-1) {
					C.add(j);
				}
			}else if((S.get(i).equals(S.get(i-1)))==false){
				I.add(S.get(i));
				C.add(j);
				j =0;
			}
		} {
			if(S.get(i).equals(S.get(i-1))) {
				flag = true;
				j++;
				if(i==N-1) {
					C.add(j);
				}
			}else if((S.get(i).equals(S.get(i-1)))==false){
				I.add(S.get(i));
				C.add(j);
				j =0;
			}
		} if(S.get(i).equals(S.get(i-1))) {
				flag = true;
				j++;
				if(i==N-1) {
					C.add(j);
				}
			}else if((S.get(i).equals(S.get(i-1)))==false){
				I.add(S.get(i));
				C.add(j);
				j =0;
			} S.get(i).equals(S.get(i-1)) S.get(i).equals S.get(i) S.get S i S.get(i-1) S.get S i-1 i 1 {
				flag = true;
				j++;
				if(i==N-1) {
					C.add(j);
				}
			} flag = true flag true j++ j if(i==N-1) {
					C.add(j);
				} i==N-1 i N-1 N 1 {
					C.add(j);
				} C.add(j) C.add C j if((S.get(i).equals(S.get(i-1)))==false){
				I.add(S.get(i));
				C.add(j);
				j =0;
			} (S.get(i).equals(S.get(i-1)))==false (S.get(i).equals(S.get(i-1))) S.get(i).equals S.get(i) S.get S i S.get(i-1) S.get S i-1 i 1 false {
				I.add(S.get(i));
				C.add(j);
				j =0;
			} I.add(S.get(i)) I.add I S.get(i) S.get S i C.add(j) C.add C j j =0 j 0 if(!flag) {
			C.add(j);
		} !flag flag {
			C.add(j);
		} C.add(j) C.add C j int x = 0; x 0 int y = 0; y 0 List<Integer> max = new ArrayList<Integer>(); max new ArrayList<Integer>() List<String> result = new ArrayList<String>(); result new ArrayList<String>() for(int count:C) {
			if(x==0) {
				max.add(C.get(0));
				result.add(I.get(0));
			}else {
				if(max.get(y)==count) {
					result.add(I.get(x));
				}else if(max.get(y)<count) {
					max.clear();
					result.clear();
					max.add(C.get(x));
					result.add(I.get(x));
				}
			}
			x++;
		} int count C {
			if(x==0) {
				max.add(C.get(0));
				result.add(I.get(0));
			}else {
				if(max.get(y)==count) {
					result.add(I.get(x));
				}else if(max.get(y)<count) {
					max.clear();
					result.clear();
					max.add(C.get(x));
					result.add(I.get(x));
				}
			}
			x++;
		} {
			if(x==0) {
				max.add(C.get(0));
				result.add(I.get(0));
			}else {
				if(max.get(y)==count) {
					result.add(I.get(x));
				}else if(max.get(y)<count) {
					max.clear();
					result.clear();
					max.add(C.get(x));
					result.add(I.get(x));
				}
			}
			x++;
		} if(x==0) {
				max.add(C.get(0));
				result.add(I.get(0));
			}else {
				if(max.get(y)==count) {
					result.add(I.get(x));
				}else if(max.get(y)<count) {
					max.clear();
					result.clear();
					max.add(C.get(x));
					result.add(I.get(x));
				}
			} x==0 x 0 {
				max.add(C.get(0));
				result.add(I.get(0));
			} max.add(C.get(0)) max.add max C.get(0) C.get C 0 result.add(I.get(0)) result.add result I.get(0) I.get I 0 {
				if(max.get(y)==count) {
					result.add(I.get(x));
				}else if(max.get(y)<count) {
					max.clear();
					result.clear();
					max.add(C.get(x));
					result.add(I.get(x));
				}
			} if(max.get(y)==count) {
					result.add(I.get(x));
				}else if(max.get(y)<count) {
					max.clear();
					result.clear();
					max.add(C.get(x));
					result.add(I.get(x));
				} max.get(y)==count max.get(y) max.get max y count {
					result.add(I.get(x));
				} result.add(I.get(x)) result.add result I.get(x) I.get I x if(max.get(y)<count) {
					max.clear();
					result.clear();
					max.add(C.get(x));
					result.add(I.get(x));
				} max.get(y)<count max.get(y) max.get max y count {
					max.clear();
					result.clear();
					max.add(C.get(x));
					result.add(I.get(x));
				} max.clear() max.clear max result.clear() result.clear result max.add(C.get(x)) max.add max C.get(x) C.get C x result.add(I.get(x)) result.add result I.get(x) I.get I x x++ x for(String view:result) {
			System.out.println(view);
		} String view result {
			System.out.println(view);
		} {
			System.out.println(view);
		} System.out.println(view) System.out.println System.out System System.out view String args[] args public class Main{
	public static void main(String args[]){
		Scanner scan = new Scanner(System.in);
		List<String> S = new ArrayList<String>();
		List<String> I = new ArrayList<String>();
		List<Integer> C = new ArrayList<Integer>();

		int N = scan.nextInt();
		for(int i=0;i<N;i++) {
			S.add(scan.next());
		}

		Collections.sort(S);

		int j = 0;
		boolean flag = false;
		I.add(S.get(0));

		for(int i =1; i<N; i++) {
			if(S.get(i).equals(S.get(i-1))) {
				flag = true;
				j++;
				if(i==N-1) {
					C.add(j);
				}
			}else if((S.get(i).equals(S.get(i-1)))==false){
				I.add(S.get(i));
				C.add(j);
				j =0;
			}
		}

		if(!flag) {
			C.add(j);
		}

		int x = 0;
		int y = 0;
		List<Integer> max = new ArrayList<Integer>();
		List<String> result = new ArrayList<String>();

		for(int count:C) {
			if(x==0) {
				max.add(C.get(0));
				result.add(I.get(0));
			}else {
				if(max.get(y)==count) {
					result.add(I.get(x));
				}else if(max.get(y)<count) {
					max.clear();
					result.clear();
					max.add(C.get(x));
					result.add(I.get(x));
				}
			}
			x++;
		}

		for(String view:result) {
			System.out.println(view);
		}
		//		}
	}
} public class Main{
	public static void main(String args[]){
		Scanner scan = new Scanner(System.in);
		List<String> S = new ArrayList<String>();
		List<String> I = new ArrayList<String>();
		List<Integer> C = new ArrayList<Integer>();

		int N = scan.nextInt();
		for(int i=0;i<N;i++) {
			S.add(scan.next());
		}

		Collections.sort(S);

		int j = 0;
		boolean flag = false;
		I.add(S.get(0));

		for(int i =1; i<N; i++) {
			if(S.get(i).equals(S.get(i-1))) {
				flag = true;
				j++;
				if(i==N-1) {
					C.add(j);
				}
			}else if((S.get(i).equals(S.get(i-1)))==false){
				I.add(S.get(i));
				C.add(j);
				j =0;
			}
		}

		if(!flag) {
			C.add(j);
		}

		int x = 0;
		int y = 0;
		List<Integer> max = new ArrayList<Integer>();
		List<String> result = new ArrayList<String>();

		for(int count:C) {
			if(x==0) {
				max.add(C.get(0));
				result.add(I.get(0));
			}else {
				if(max.get(y)==count) {
					result.add(I.get(x));
				}else if(max.get(y)<count) {
					max.clear();
					result.clear();
					max.add(C.get(x));
					result.add(I.get(x));
				}
			}
			x++;
		}

		for(String view:result) {
			System.out.println(view);
		}
		//		}
	}
} Main
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;

//public class atcoder0216_C{
public class Main{
	public static void main(String args[]){
		Scanner scan = new Scanner(System.in);
		List<String> S = new ArrayList<String>();
		List<String> I = new ArrayList<String>();
		List<Integer> C = new ArrayList<Integer>();

		int N = scan.nextInt();
		for(int i=0;i<N;i++) {
			S.add(scan.next());
		}

		Collections.sort(S);

		int j = 0;
		boolean flag = false;
		I.add(S.get(0));

		for(int i =1; i<N; i++) {
			if(S.get(i).equals(S.get(i-1))) {
				flag = true;
				j++;
				if(i==N-1) {
					C.add(j);
				}
			}else if((S.get(i).equals(S.get(i-1)))==false){
				I.add(S.get(i));
				C.add(j);
				j =0;
			}
		}

		if(!flag) {
			C.add(j);
		}

		int x = 0;
		int y = 0;
		List<Integer> max = new ArrayList<Integer>();
		List<String> result = new ArrayList<String>();

		for(int count:C) {
			if(x==0) {
				max.add(C.get(0));
				result.add(I.get(0));
			}else {
				if(max.get(y)==count) {
					result.add(I.get(x));
				}else if(max.get(y)<count) {
					max.clear();
					result.clear();
					max.add(C.get(x));
					result.add(I.get(x));
				}
			}
			x++;
		}

		for(String view:result) {
			System.out.println(view);
		}
		//		}
	}
}

