Dada una secuencia de números naturales entre 1 y 100 000, hay que encontrar los números que aparecen con más frecuencia y mostrarlos ordenados de mayor a menor frecuencia. Si dos números tienen la misma frecuencia, hay que mostrar primero el más pequeño.
Por ejemplo, si la secuencia es:
3 1 4 1 5 9 2 6 5 3 5 1
y , los números más frecuentes son: el 1 (aparece 3 veces), el 5 (aparece 3 veces) y el 3 (aparece 2 veces). Como el 1 y el 5 tienen la misma frecuencia, el 1 va primero porque es más pequeño.
En este problema el centro de interés es la eficiencia. Hay que encontrar las estructuras de datos adecuadas para resolver el problema en el menor tiempo posible.
La entrada consiste en varios casos. Cada caso empieza con dos enteros y , seguidos de números naturales entre 1 y 100 000. La entrada termina con fin de fichero.
Para cada caso, hay que escribir los
números más frecuentes, uno por línea, ordenados de mayor a menor
frecuencia. Si dos números tienen la misma frecuencia, el más pequeño va
primero. Cada caso termina con una línea con ---.
Input
12 3 3 1 4 1 5 9 2 6 5 3 5 1 8 2 7 7 3 3 7 3 1 1
Output
1 5 3 --- 3 7 ---