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;

namespace _0028
{
    class Program
    {
        static void Main(string[] args)
        {
            var modeValues = new Dictionary<int, int>();

            while (true)
            {
                var input = Console.ReadLine();
                if (string.IsNullOrEmpty(input))
                {
                    break;
                }

                if (modeValues.ContainsKey(int.Parse(input)))
                {
                    modeValues[int.Parse(input)]++;
                }
                else 
                {
                    modeValues.Add(int.Parse(input), 1);
                }
            }
            var sortedModeValues = modeValues.OrderBy(a =>a.Key).OrderByDescending(a => a.Value);

            foreach(var modeValue in sortedModeValues)
            {
                if (modeValue.Value == sortedModeValues.First().Value)
                {
                    Console.WriteLine(modeValue.Key);
                }else
                {
                    break;
                }
            }
        }
    }
}