Пирамиды
Легко построить пирамиду, если у Вас имеется набор одинаковых кубиков. Например, на плоском основании Вы кладете, скажем, 10×10 кубиков в форме квадрата. Сверху квадрата по центру кладете 9×9 кубиков. Продолжая указанным образом, Вы заканчиваете постройку одним кубиком, который является вершиной пирамиды. Высота построенной пирамиды равна длине основания, которая в нашем случае равна 10. Такую пирамиду будем называть высокой.
Если Вы считаете, что высокая пирамида слишком крутая, можно поступить иначе. На квадратное основание 10×10 положим квадрат 8×8, затем квадрат 6×6, и так далее, закончив верхним слоем 2×2 (если начать постройку пирамиды с основания нечетной длины, тогда ее верхушка будет состоять из одного кубика). Высота такой пирамиды составит половину длины основания. Будем называть такую пирамиду низкой.
Однажды (в достаточно далеком прошлом) жил фараон, который унаследовал от своего отца огромное количество каменных кубов. Он приказал своему архитектору построить пирамиду, в обязательном порядке использовав все камни до единого. Архитектор любезно объяснил, что не из любого количества камней можно составить пирамиду. Из 10 кубов можно построить низкую пирамиду с основанием 3. Из 5 кубов можно построить высокую пирамиду с основанием 2. Однако из 7 кубов нельзя построить никакую пирамиду.
Фараон не был в восторге, однако после непродолжительного обдумывания он придумал новые ограничения.
Использованы должны быть все кубы.
Можно построить несколько пирамид, однако их количество должно быть наименьшим.
Все пирамиды должны быть различными.
Высота каждой пирамиды должна быть как минимум 2.
Согласно выше приведенному, наибольшая пирамида должна быть как можно больше (то есть содержать наибольшее число кубов).
Согласно выше приведенному, следующая наибольшая пирамида должна быть тоже как можно больше.
И так далее...
Рисуя фигуры и картины на песке, архитектор через некоторое время нашел наилучшее решение.
Напишите программу, которая определит, как по заданному числу кубов удовлетворить все ограничения фараона.
Входные данные
Состоит из нескольких тестов, каждый из которых находится в отдельной строке. Каждый тест содержит число c (1 ≤ c ≤ 10^6) - имеющееся количество кубов.
Последняя строка содержит один ноль и не обрабатывается.
Выходные данные
Для каждого теста выведите его номер и набор построенных пирамид. Пирамиды следует упорядочить, начиная вывод с наибольшей. Каждая пирамида задается размером основания, за которым следует L для низких пирамид и H для высоких пирамид. Если две различные пирамиды состоят из одинакового числа кубов, сначала следует выводить более высокую пирамиду. Вывести "impossible", если невозможно удовлетворить всем условиям фараона.
Следуйте за приведенным в примере форматом вывода.