Сережа и лесенка

ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Сережа очень любит последовательности целых чисел. В особенности он любит последовательности лесенки.

Последовательность a1, a2, ..., a|a| (|a| — длина последовательности) называется лесенкой, если существует такой индекс i (1 ≤ i ≤ |a|), что выполяется соотношение:

a1 < a2 < ... < ai - 1 < ai > ai + 1 > ... > a|a| - 1 > a|a|.

Например, последовательности [1, 2, 3, 2] и [4, 2] являются лесенками, а последовательность [3, 1, 2] — нет.

У Сережи есть m карточек с числами. Он хочет выложить некоторые карточки на стол в ряд, чтобы получилась последовательность лесенка. Какое максимальное количество карточек ему удастся выложить на стол?

Входные данные

В первой строке записано целое m (1 ≤ m ≤ 105) — количество карточек у Сережи. Во второй строке записаны m целых чисел bi (1 ≤ bi ≤ 5000) — числа на карточках, которые есть у Сережи.

Выходные данные

В первой строке выведите количество карточек, которое удастся выложить на стол. Во второй строке выведите саму лесенку, которая получится.

Примеры
Входные данные
5
1 2 3 4 5
Выходные данные
5
5 4 3 2 1
Входные данные
6
1 1 2 2 3 3
Выходные данные
5
1 2 3 2 1

Задача на Codeforces (контест 381, задача B, © Codeforces.com)