Задана последовательность целых положительных чисел 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]. После этого в последовательности не останется соседних одинаковых элементов, поэтому процесс применения операций остановится.
Определите, как будет выглядеть последовательность после окончания процесса применения операций.
Выходные данные
В первой строке выведите целое число k — количество элементов в последовательности после окончания процесса применения операций.
Во второй строке выведите k целых чисел — последовательность после окончания применения операций.
Примечание
Первый пример разобран в условии.
Во втором примере последовательность имеет вид [1000000000, 1000000000, 1000000000, 1000000000]. После выполнения первой операции она станет равна [1000000001, 1000000000, 1000000000]. После выполнения второй операции последовательность примет вид [1000000001, 1000000001]. Затем произойдет третья операция, которая будет последней, а последовательность будет выглядеть как [1000000002].
В третьем примере нет соседних одинаковых элементов, поэтому последовательность не изменится.