F - Ordenando números

Languages: C, C++, Java, JavaScript, Tiger, Python, Haskell, Pascal, C#
Time & Memory limits: (details)

Dada un lista de enteros no negativos se desea ordenarla de manera tal que al concatenar los números de la lista resultante e interpretar el resultado como un número, este sea lo mayor posible. Por ejemplo, si tenemos 123 y 456, el mayor número que podemos obtener es el 456123, ya que el otro posible, 12345 es menor que el primero.

Input

En la primera línea un entero n (1 ≤ n ≤ 10^5) — la cantidad de enteros en la lista. En la segunda línea n números ai (0 ≤ ai ≤ 10^9) — los números de la lista original. Los números estarán separados por espacio.

Output

Debe imprimir en una línea los n enteros de la lista original en el orden deseado, separados por espacios.

Sample test(s)

Input
3 1 2 3
--- Showing first 30 lines (click "Copy" to get full content) ---
Output
3 2 1
--- Showing first 30 lines (click "Copy" to get full content) ---
Input
4 20 17 18 2
--- Showing first 30 lines (click "Copy" to get full content) ---
Output
2 20 18 17
--- Showing first 30 lines (click "Copy" to get full content) ---