如你所记得的那样,Mateusz 热爱流行音乐。他刚刚创作了一首新曲子,现在只需要为它编排一个合适的结尾。
Mateusz 希望他的曲子结尾由一个非空的音符序列组成,每个音符都可以用其响度来描述,响度是一个正整数。Mateusz 可以使用任意响度的音符,但结尾的任务是让曲子逐渐减弱——因此,结尾处的音符响度必须构成一个严格递减序列。
正如你可能知道或记得的那样,流行音乐中“比特”很重要。这一次,Mateusz 规定响度为 $x$ 的音符具有“比特强度”,等于 $x$ 的二进制表示中 1 的个数。考虑到曲子的其余部分,他确定结尾处所有音符的比特强度之和必须恰好等于 $n$。
请帮助他找到一个合适的音符响度序列。可以证明,至少存在一个这样的序列,因此你的任务是找到字典序最小的那个。
注意:我们称数字序列 $A$ 在字典序上小于数字序列 $B$,如果它们在第一个不同的位置上,$A$ 的数值小于 $B$。如果不存在这样的位置,那么当 $A$ 比 $B$ 短时,$A$ 在字典序上小于 $B$。例如,序列 $[1, 10000000]$ 在字典序上小于 $[2, 2]$,序列 $[4, 2, 20, 30, 40]$ 在字典序上小于 $[4, 2, 100, 1]$,而序列 $[5, 4, 3, 2]$ 在字典序上小于 $[5, 4, 3, 2, 1]$。
输入格式
标准输入的第一行包含一个整数 $n$ ($1 \le n \le 1\,000\,000$),表示所求序列中音符比特强度之和的要求。
输出格式
第一行输出一个整数 $k$,表示所求序列的长度。
第二行输出 $k$ 个正整数——这是满足所有元素比特强度之和为 $n$ 的字典序最小的严格递减序列。
样例
输入 1
3
输出 1
2 3 1
输入 2
10
输出 2
6 7 5 4 3 2 1
说明
在第一个样例中,其他合法的序列还包括 $[3, 2]$、$[7]$ 或 $[4, 2, 1]$,但序列 $[3, 1]$ 是字典序最小的。请注意,例如序列 $[1, 3]$、$[3, 1, 0]$ 或 $[2, 2, 2]$ 不是合法的序列,因为它们要么不是严格递减的,要么包含非正整数。