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 _028_ModeValue
{
	class Program
	{
		static void Main ( string[] args )
		{
			List<Pair> list = new List<Pair> (100);

			for (int lp = 1; lp <= 100; lp++)
			{
				Pair p = new Pair (lp, 0);
				list.Add (p);
			}

			string inputStr;

			while ((inputStr = Console.ReadLine ()) != null)
			{
				int inputNum = int.Parse (inputStr);
				list[inputNum - 1].Value++;
			}

			list = list.OrderByDescending (item => item.Value).ToList ();

			int max = list[0].Value;

			int index = 0;
			while (list[index].Value == max)
			{
				Console.WriteLine (list[index].Index);
				index++;
			}
		}
	}
	class Pair
	{
		public Pair ( int index, int value )
		{
			this.Index = index;
			this.Value = value;
		}
		public int Index { set; get; }
		public int Value { set; get; }
	}
}