Василий — большой любитель планирования дел наперед. Поэтому каждое утро он занимается формированием вложенного списка предстоящих дел.
Корректным вложенным списком является любой список, который можно получить из списка с одним пунктом «1» путем применения операций. Каждая операция вставляет в список новый пункт на следующей строке после одного из уже существующих пунктов \(a_1 \,.\, a_2 \,.\, a_3 \,.\, \,\cdots\, \,.\,a_k\), и бывает двух видов:
- добавить пункт \(a_1 \,.\, a_2 \,.\, a_3 \,.\, \cdots \,.\, a_k \,.\, 1\) (начав более вложенный список), или
- добавить пункт \(a_1 \,.\, a_2 \,.\, a_3 \,.\, \cdots \,.\, (a_k + 1)\) (продолжив текущий уровень).
Операцию можно производить только при условии, что в списке не появится двух одинаковых пунктов. А также, если рассматривать каждый пункт как последовательность чисел, последовательность пунктов должна всегда оставаться возрастающей в лексикографическом порядке. Примеры корректных и некорректных списков приведены на рисунке. Пример того, как можно получить корректный список, изображенный на картинке, приведен в секции «
Примечание».
Когда Василий захотел сохранить Word-документ со списком своих дел, он промахнулся и вместо «Ctrl+S» нажал совсем другую комбинацию клавиш. Достоверно неизвестно, что это была за комбинация клавиш, но после ее нажатия каждый пункт списка заменился одним числом: числом, изначально написанным последним в номере пункта.
Василий хочет, чтобы вы помогли ему восстановить подходящий изначальный вложенный список.
Выходные данные
Для каждого набора входных данных выведите \(n\) строк, которые являются корректным вложенным списком, из которого мог получиться список, который вам предоставил Василий.
Если ответов несколько, то вы можете вывести любой подходящий.
Примечание
Во втором наборе входных данных одним из корректных подходящих списков является:
1
1.1
1.1.1
1.1.2
1.2
1.2.1
2
2.1
2.2
Такой список можно получить при помощи последовательности операций, показанной ниже:
- Изначальный список с одним пунктом \(1\).
- Вставляем пункт \(2\) при помощи операции вставки второго типа после пункта \(1\).
- Вставляем пункт \(1.1\) при помощи операции вставки первого типа после пункта \(1\).
- Вставляем пункт \(1.2\) при помощи операции вставки второго типа после пункта \(1.1\).
- Вставляем пункт \(1.1.1\) при помощи операции вставки первого типа после пункта \(1.1\).
- Вставляем пункт \(1.1.2\) при помощи операции вставки второго типа после пункта \(1.1.1\).
- Вставляем пункт \(1.2.1\) при помощи операции вставки первого типа после пункта \(1.2\).
- Вставляем пункт \(2.1\) при помощи операции вставки первого типа после пункта \(2\).
- Вставляем пункт \(2.2\) при помощи операции вставки второго типа после пункта \(2.1\).