Nowhere Money#5705

Nowhere Money

1 second
256 megabytes
Very hard

In Nowhere town, people use "coin and slot" as their money. There are types of coins called size-1 and size-2. Size-2 coin is twice the thickness of size-1. People stack their coins in slots and use them as money. There are many size of slots. The slot of size is able to stack up size-1 coins. Only filled-up slot is considered as legal money. The value of each filled-up slot is the distinct ways it can stack coins inside. For example, for size-1 slot, there is only one way to stack a single size-1 coin inside. For size-2 slot, there are ways to stack two size-1 coins or one size-2 coin inside. And for size-5 slot, there are ways to stack coins inside, which can be illustrated as follow: 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. So the value of filled up slot with size-1, size-2 and size-5 are , and (monetary) units respectively (regardless of the type of coins or the ways they are stacked).

Mr.Thinktwice is an owner of a grocery store in this town. He noticed that customers are likely to go to the shop that can return the (money) change in the form that suits their customer. And from his little survey, he found that most customers would like to get their amount of change in the form according to these simple constraints.

  1. The number of slots is minimum.

  2. The size of each slot must be different from each other by at least .

So Mr.Thinktwice ask you to write a program that can give him a series of slot sizes for a given amount of change according to the previous constraints. Moreover, the series must be sorted in descending order. For more specific, any amount of change can be written in this formula.

where

For example :

Input

Input is a standard input which contains a set of integer. Each line of the input is an amount of change which represents by a positive integer less than or equal to or 5 \times 10^{18}. The input is terminated when the EOF (End-Of-File) is reached.

Output

For each amount of change, generate lines of output data. The first line is the amount of change itself. The second line is a series of slot sizes (in descending order) separated by spaces. (The maximum slot size is less than or equal to .) The third line is a series of corresponding slot values. The fourth line is a blank line.

Examples

Example 1

Loading
Loading