Матрёшки
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
stdin
вывод
stdout

Склад завода по изготовлению матрёшек переполнен! Нужно как-то освобождать место, поэтому директор завода принял волевое решение продать абсолютно всё, что там лежит. Больше всего места на складе занимают заготовки для матрёшек — нераскрашенные статуэтки целых положительных размеров, которые можно вставлять друг в друга, если размер одной меньше чем размер другой. Увы, в таком неприглядном виде покупать их никто не хочет.

К счастью, завод сотрудничает с союзом художников по матрёшкам. В частности, был заключён договор, позволяющий заводу заказывать роспись матрёшек. В договоре указано, что матрёшка — это упорядоченный набор из M статуэток (1 ≤ M) размеров r1 < r2 < r3 < ... < rM. Там же прописано, что стоимость раскрашивания одной матрёшки равна одному тугрику, при этом количество статуэток, входящих в матрёшку, значения не имеет.

Получается, что для того чтобы продать всё содержимое склада, нужно сначала собрать заготовки в матрёшки и заказать роспись полученных матрёшек у художников. Помогите директору завода сделать это, потратив как можно меньше тугриков!

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

В первой строке входных данных содержится число N — количество заготовок на складе (1 ≤ N ≤ 1 000). В последующих N строках содержатся целые числа s1, s2, s3, ..., sN, где si — это размер i-й заготовки (1 ≤ si ≤ 1 000).

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

В первой строке выходного файла выведите целое число T — минимальное количество тугриков, которое нужно заплатить художникам.

Далее выведите T строк, описывающие матрёшек, которые завод закажет у союза художников. Матрёшка описывается возрастающей последовательностью чисел r1, r2, r3, ..., rM, где ri — размер i-й заготовки, входящей в матрёшку.

Примеры тестов

Входные данные
5
1
3
2
2
3
Выходные данные
2
1 2 3
2 3
Входные данные
6
4
2
1
2
4
2
Выходные данные
3
1 2
2 4
2 4