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
#!python

n = int(input())

bits = [0]
pref = [0]
s = 0
i = 1
while n > s:
    b = bin(i).count("1")
    s += b 
    bits.append(b)
    pref.append(s)
    i += 1
i -= 1

res = []
while n > 0:
    if n <= pref[i-1]:
        i -= 1
        continue
    res.append(i)
    n -= bits[i]
    i -= 1

print(len(res))
print(' '.join([str(r) for r in res]))