Problem:
Mode Value

Your task is to write a program which reads a sequence of integers and prints mode values of the sequence.
The mode value is the element which occurs most frequently.

Input

A sequence of integers ai (1 ≤ ai ≤ 100). The number of integers is less than or equals to 100.

Output

Print the mode values. If there are several mode values, print them in ascending order.

Sample Input

5
6
3
5
8
7
5
3
9
7
3
4

Output for the Sample Input

3
5

For example, 3 and 5 respectively occur three times, 7 occurs two times, and others occur only one. So, the mode values are 3 and 5.

Solution in C# (judge verdict: Accepted)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Mode_Value
{
    class Program
    {
        static void Main(string[] args)
        {
            List<int> n = new List<int>();
            while (true)
            {
                string input = Console.ReadLine();
                if (string.IsNullOrEmpty(input)) break;
                n.Add(int.Parse(input));
            }

            n.Sort();
            List<int> cnt = new List<int>();
            List<int> idx = new List<int>();
            for (int i = 0; i < n.Count; ++i)
            {
                int count = 0;
                for (int j = i+1; j < n.Count; ++j)
                {
                    if (n[i] == n[j])
                    {
                        ++count;
                    }
                    else break;
                }
                cnt.Add(count);
                idx.Add(i);
            }
            List<int> ansIdx = new List<int>();
            for (int i = 0; i < cnt.Count; ++i)
            {
                if (cnt[i] == cnt.Max())
                {
                    ansIdx.Add(i);
                }

            }
            foreach (int item in ansIdx)
            {
                Console.WriteLine(n[item]);
            }

        }
    }
}