1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
MAX = 200000

pre = [0] * MAX

for i in range(MAX):
    pre[i] = (i % 2) + pre[i // 2]

out = []

n = int(input())
for i in range(1, MAX):
    if n > 0:
        out.append(i)
        n -= pre[i]


oo = []
while out:
    if pre[out[-1]] + n <= 0:
        n += pre[out[-1]]
    else:
        oo.append(out[-1])

    out.pop()

assert n == 0
print(len(oo))
print(' '.join(map(str, oo)))