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 JAVA (judge verdict: Accepted)


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;

public class Main {

  public void run() throws IOException {
    BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
    String in;
    int[] countData = new int[100];
    while ((in = reader.readLine()) != null) {
      int n = Integer.parseInt(in);
      countData[n-1]++;
    }

    //????????????y????????????
    int modeY = Arrays.stream(countData).max().getAsInt();

    //??????????????????
    List<Integer> datasOfMode = new LinkedList<>();
    for (int i = 0; i < countData.length; i++) {
      if (countData[i] == modeY)
        datasOfMode.add(i+1);
    }

    //??????????????????
    for (int dataOfMode : datasOfMode) {
      System.out.println(dataOfMode);
    }
  }

  public static void main(String[] args) throws IOException {
    Main main = new Main();
    main.run();
  }

}