E. Слияние равных элементов
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Задана последовательность целых положительных чисел a1, a2, ..., an.

Пока возможно, с ней производят следующую операцию: ищут пару соседних одинаковых элементов. Если таких несколько, то выбирают самую левую такую пару (с наименьшими индексами элементов). Если эти числа были равны x, то оба этих числа удаляют и на их место вставляют одно число x + 1. Таким образом, количество элементов в последовательности после каждой операции уменьшается на 1.

Процесс применения операций следует прервать, когда в последовательности нет соседних одинаковых элементов.

Например, если последовательность изначально имела вид [5, 2, 1, 1, 2, 2], то после первой операции она будет иметь вид [5, 2, 2, 2, 2], после второй — [5, 3, 2, 2], после третьей — [5, 3, 3], а после четвертой — [5, 4]. После этого в последовательности не останется соседних одинаковых элементов, поэтому процесс применения операций остановится.

Определите, как будет выглядеть последовательность после окончания процесса применения операций.

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

В первой строке следует целое число n (2 ≤ n ≤ 2·105) — количество элементов в последовательности.

Во второй строке следует начальная последовательность целых чисел a1, a2, ..., an (1 ≤ ai ≤ 109).

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

В первой строке выведите целое число k — количество элементов в последовательности после окончания процесса применения операций.

Во второй строке выведите k целых чисел — последовательность после окончания применения операций.

Примеры
Входные данные
6
5 2 1 1 2 2
Выходные данные
2
5 4
Входные данные
4
1000000000 1000000000 1000000000 1000000000
Выходные данные
1
1000000002
Входные данные
7
4 10 22 11 12 5 6
Выходные данные
7
4 10 22 11 12 5 6
Примечание

Первый пример разобран в условии.

Во втором примере последовательность имеет вид [1000000000, 1000000000, 1000000000, 1000000000]. После выполнения первой операции она станет равна [1000000001, 1000000000, 1000000000]. После выполнения второй операции последовательность примет вид [1000000001, 1000000001]. Затем произойдет третья операция, которая будет последней, а последовательность будет выглядеть как [1000000002].

В третьем примере нет соседних одинаковых элементов, поэтому последовательность не изменится.