Поганий Treap
Treap, також відоме як декартове дерево, є структурою даних, що зберігає набір ключів у вигляді бінарного дерева пошуку.
Кожна вершина цього дерева описується парою .
Значення у вершинах — це значення збережених ключів. Вони підкоряються правилу "бінарного дерева пошуку": всі значення у лівому піддереві менші за значення у корені, а всі значення у правому піддереві більші за значення у корені.
Значення у вершинах підкоряються правилу "купки": значення у вершини менше або дорівнює значенню у її батька.
Значення для кожного нового вузла зазвичай вибирається випадковим чином відповідно до певного розподілу, що забезпечує хорошу середню часову складність багатьох операцій.
Оскільки ця структура даних поєднує властивості бінарного дерева пошуку та купи, її назва є "портманто" з двох слів: TRee + hEAP = TREAP.
Бенджамін вирішив, що недетермінізм у виборі значення є недоліком, оскільки це призводить до різного часу виконання запитів. Він вирішив обчислювати для кожного вузла детерміновано на основі його значення , обравши правило . Бенджамін особливо задоволений тим, що різні цілі числа завжди даватимуть різні значення .
Барбара розуміє, що хоча недетерміноване декартове дерево може мати гіршу продуктивність при "поганій" випадковій послідовності, детерміноване декартове дерево може мати гіршу продуктивність при "поганому" наборі ключів. Вона хоче пояснити це Бенджаміну, показавши йому цілих чисел, які, будучи збереженими в його структурі даних, утворять дерево висоти — "найбільш незбалансовану" можливу ситуацію.
Допоможіть Барбарі знайти таких ключів. Усі ці ключі повинні вміщуватися в -бітовий знаковий тип.
Вхідні дані
Одне ціле число .
Вихідні дані
Виведіть рядків, кожен з яких містить різні цілочисельні ключі. Усі ключі повинні бути в межах від до включно. Декартове дерево, побудоване на цих ключах за правилом , повинно мати висоту .