不再循环
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
Special Judge, 64bit IO Format: %lld

题目描述

给定一个正整数 n
你需要重复执行 n=n-lowbit(n) ,直到 n=0
请依次输出执行后的值。
lowbit(n) 代表 n 在二进制下最低的 1 位的值。
比如,10 的二进制为 1010 ,在十进制下,lowbit(10)=2

特别的,部分关键字将被禁用:
while
for
foreach
range
loop

如果输出不正确,系统将返回 答案错误 。
如果输出正确,但是代码包含了上述关键字,系统将返回 格式错误 。
如果输出正确,且代表未包含上述关键字,系统将返回 答案正确 。

输入描述:

第一行有一个整数 n\ (\ 1 \leq n \leq 10^9\ )

输出描述:

输出若干行,每行一个整数。
示例1

输入

复制
10

输出

复制
8
0
示例2

输入

复制
15

输出

复制
14
12
8
0
示例3

输入

复制
1000000000

输出

复制
999999488
999997440
999981056
999948288
999817216
999292928
998244352
989855744
973078528
939524096
805306368
536870912
0