Your friend recently gave you some slimes for your birthday. You have $*n*$ slimes all initially with value $1$.
You are going to play a game with these slimes. Initially, you put a single slime by itself in a row. Then, you will add the other $*n* - 1$ slimes one by one. When you add a slime, you place it at the right of all already placed slimes. Then, while the last two slimes in the row have the same value $*v*$, you combine them together to create a slime with value $*v* + 1$.
You would like to see what the final state of the row is after you've added all $*n*$ slimes. Please print the values of the slimes in the row from left to right.
Input
The first line of the input will contain a single integer, $*n*$ ($1 ≤ *n* ≤ 100 000$).
Output
Output a single line with $*k*$ integers, where $*k*$ is the number of slimes in the row after you've finished the procedure described in the problem statement. The $*i*$-th of these numbers should be the value of the $*i*$-th slime from the left.
Note
In the first sample, we only have a single slime with value $1$. The final state of the board is just a single slime with value $1$.
In the second sample, we perform the following steps:
Initially we place a single slime in a row by itself. Thus, row is initially 1.
Then, we will add another slime. The row is now 1 1. Since two rightmost slimes have the same values, we should replace these slimes with one with value $2$. Thus, the final state of the board is 2.
In the third sample, after adding the first two slimes, our row is 2. After adding one more slime, the row becomes 2 1.
In the last sample, the steps look as follows:
122 133 13 23 2 14
样例
1
1
2
2
3
2 1
8
4
题面与样例版权归 Codeforces 及出题人所有;中文翻译由 AI 生成(CI 管线),如有出入请以原文为准。