// Slower C++ solution:
#include <iostream>

#include <cstdio>

#include <cmath>

#include <cstring>

#include <algorithm>



using namespace std;



const int N = 200010;



void QuickSort(char s[][11], int l, int h)

{

    int i = l;

    int j = h;

    char t[11],d[11];

    strcpy(t,s[(l+h)/2]);

        while (i <= j)

        {

            while(strcmp(s[j],t)>0)     

            j--;

            while(strcmp(s[i],t)<0)      

            i++;

            if(i<=j)

            {

                strcpy(d,s[i]);

                strcpy(s[i],s[j]);

                strcpy(s[j],d);

                i++;

                j--;

            }

        }    

        if(l<j) QuickSort(s, l, j);     

        if(i<h) QuickSort(s, i, h);    

    

}

int main()

{

	int i,j,n,a[N]={0},b=0,q=0;

	char s[N][11],t[11];

	scanf("%d",&n);

	for(i=0;i<n;i++)

	scanf("%s",s[i]);

	QuickSort(s,0, n-1);

	

    for(j=0;j<n;j++)

	{

		if(strcmp(s[j],s[j+1])==0)

		{

			a[j-b]++;

			b=a[j-b];

		}

		else

		{

			if(a[j-b]>q)

			q=a[j-b];

			b=0;

		}

	}

	

	for(i=0;i<n;i++)

	{

		if(a[i]==q)

		printf("%s\n",s[i]);

	}



return 0;

}

// Faster C++ solution for the same problem (measured speedup: 1.803188703209507x):
/**

 *    Creator :  bizarre

 *    Date : 4/2020

 *    Problem Number : 494

**/

#include <bits/stdc++.h>

using namespace std;

#define bizarre  ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);

#define file freopen("input.txt","r",stdin); freopen("output.txt","w",stdout);

#define ll long long

#define ld long double

/*

vector<int> prime_Numbers;

int primes[1000005];

void prime(int n)

{

    primes[1]=primes[0]=0;

    for(int i=2; i<=n; i++)

        primes[i]=true;

    for(int i=2; i<=n; i++)

    {

        if(primes[i]==true)

        {

            prime_Numbers.push_back(i);

            for(int j=i+i; j<=n; j+=i)

                primes[j]=false;

        }

    }

    for(int i=2; i<=n; i++)

        primes[i]+=primes[i-1];

}

void move1step(long long& a, long long& b, long long q)

{

    long long c= a-q*b;

    a=b;

    b=c;

}

long long egcd(long long r0,long long r1,long long& x0,long long& y0)

{

    long long x1=0,y1=1;

    x0=1;

    y0=0;

    while(r1)

    {

        long long q=r0/r1;

        move1step(r0,r1,q);

        move1step(x0,x1,q);

        move1step(y0,y1,q);

    }

    return r0;

}

bool  solve (long long a, long long b, long long c,long long&x, long long& y)

{

    long long g=egcd(a,b,x,y);

    int m=c/g;

    x*=m;

    y*=m;

    return c%g==0;

}

int gcd(int a, int b)

{

    if(b==0)

        return a;

    return gcd(b,a%b);

}

void PrimeFactorization(int n)

{

    for(int i=2; i*i<=n; i++)

    {

        int c=0;

        if(n%i==0)

        {

            while(n%i==0)

            {

                n/=i;

            }



        }

    }



}

long long ncrtane(long long n, long long r)

{

    long long ans=1,cntr=1;

    for(int i=n; i>n-r; i--)

    {

        ans*=i;

        ans/=cntr;

        cntr++;

    }

    return ans;

}

const int N = 1e6 + 5, inf = 2e9, mod = 1e9 + 7;

long long fact[N], inv[N];

long long fp(long long base, long long exp)

{

    if (exp == 0)

        return 1;

    long long ans = fp(base, exp / 2);

    ans = (ans * ans) % mod;

    if (exp % 2 != 0)

        ans = (ans * (base % mod)) % mod;

    return ans;

}

void pre(long long n)

{

    fact[0] = 1;

    inv[0] = 1;

    for (long long i = 1; i <= n; i++)

    {

        fact[i] = (i * fact[i - 1]) % mod;

        inv[i] = fp(fact[i], mod - 2);

    }

}

int ncr(long long n, long long r)

{

    return (((fact[n] * inv[n - r]) % mod) * inv[r]) % mod;

}



int npr(long long n, long long r)

{

    return (fact[n] * inv[n - r]) % mod;

}



*/

int main()

{

   bizarre

   int n,mxm=0;

   cin>>n;

   map<string,int>mp;

   while(n--)

   {

       string s; cin>>s;

       mp[s]++;

       mxm=max(mxm,mp[s]);

   }

   for(auto it : mp)

    if(it.second==mxm)

    cout << it.first<<endl;

    return 0;

}