Ніде Гроші
У місті Ніде люди використовують "монети та слоти" як свою валюту. Існує 2 типи монет, які називаються розмір1 та розмір2. Монета розмір2 вдвічі товстіша за розмір1. Люди складають свої монети в слоти і використовують їх як гроші. Існує багато розмірів слотів. Слот розміру n може вмістити n монет розмір1. Лише заповнений слот вважається легальними грошима. Вартість кожного заповненого слота - це кількість різних способів, якими можна скласти монети всередині. Наприклад, для слота розміру-1 є лише один спосіб скласти одну монету розмір1 всередині. Для слота розміру-2 є 2 способи: скласти дві монети розмір1 або одну монету розмір2 всередині. А для слота розміру-5 є 8 способів скласти монети всередині, що можна проілюструвати так: 1 1 1 1 1, 1 1 1 2, 1 1 2 1, 1 2 1 1, 2 1 1 1, 1 2 2, 2 1 2, 2 2 1. Отже, вартість заповненого слота розміру-1, розміру-2 та розміру-5 становить 1, 2 та 8 (грошових) одиниць відповідно (незалежно від типу монет або способів їх складання).
Пан Думайдвічі є власником продуктового магазину в цьому місті. Він помітив, що клієнти зазвичай обирають магазин, який може повернути здачу у формі, що підходить їхнім потребам. І з його невеликого опитування він з'ясував, що більшість клієнтів хотіли б отримати свою здачу у формі, що відповідає цим 2 простим обмеженням.
Кількість слотів має бути мінімальною.
Розмір кожного слота повинен відрізнятися від інших щонайменше на 2.
Це означає, що клієнти не хочуть жодних слотів однакового розміру, і їм буде легше розрізняти ці відмінності, якщо розміри не будуть занадто близькими.
Отже, пан Думайдвічі просить вас написати програму, яка може дати йому ряд розмірів слотів для заданої суми здачі відповідно до попередніх обмежень. Крім того, ряд має бути відсортований у порядку спадання. Більш конкретно, будь-яка сума здачі може бути записана в цій формулі.
де
X - це сума здачі.
n - загальна кількість слотів.
s_i - розмір i-го слота.
T - функція, що відображає розмір слота на кількість різних способів складання монет.
і коли j ≫ k ≡ j ≥ k+2
Наприклад:
Вхідні дані
Вхідні дані - це стандартний вхід, який містить набір цілих чисел. Кожен рядок входу - це сума здачі, яка представлена додатним цілим числом, меншим або рівним 5000000000000000000 або 5×10^18. Вхід завершується, коли досягається EOF (кінець файлу).
Вихідні дані
Для кожної суми здачі згенеруйте 4 рядки вихідних даних. Перший рядок - це сама сума здачі. Другий рядок - це ряд розмірів слотів (у порядку спадання), розділених пробілами. (Максимальний розмір слота не перевищує 90.) Третій рядок - це ряд відповідних значень слотів. Четвертий рядок - це порожній рядок.