I. Cutting a Chain
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output

Perhaps you are familiar with the following well-known problem. A traveler rented a room in a hotel for a week and offered the owner a chain of seven silver rings as payment — one ring per day, with the condition, however, that payment would be made daily. What is the minimum number of rings in the chain that he will have to cut?

The solution to this problem is as follows. It turns out that it is sufficient to cut only one ring — the third one. Then the traveler will have three pieces of chain — consisting of two, one, and four rings. On the first day, he will give the owner one ring. On the second day, he will give the piece consisting of two rings and take back the ring he gave on the first day, and so on.

You are asked to solve this problem in general. Let the chain consist of $$$N$$$ rings, and the traveler wants to stay in the hotel for $$$N$$$ days. Determine the minimum number of cuts required, as well as which rings to cut.

Input

One integer $$$N$$$ is entered ($$$1 \le N \le 10^9$$$).

Output

In the first line, output an integer $$$K$$$ — the minimum number of cuts. In the next line, output $$$K$$$ distinct integers from 1 to $$$N$$$ — the numbers of the rings that need to be cut. If there are multiple correct answers, output any one.

Examples
Input
7
Output
1
3 
Input
8
Output
2
2 4