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
29
30
31
32
33
n =int(input())
def jedynki_binarnie(z):
    suma_z = 0
    while z != 0:
        if z % 2 == 1:
            suma_z += 1
        z //= 2
    return suma_z

ilosci_jedynek = [1]
liczby = [1]
suma = 1
i = 2
while suma != n:
    y = jedynki_binarnie(i)
    if (suma+y) <= n:
        suma += y
        liczby.insert(0,i)
        ilosci_jedynek.insert(0,y)
        i+=1
        continue
    while True:
        szukana = y - (n-suma)
        if szukana in ilosci_jedynek:
            miejsce_szukanej = ilosci_jedynek.index(szukana)
            ilosci_jedynek.pop(miejsce_szukanej)
            suma -= szukana
            liczby.pop(miejsce_szukanej)
            break
        i += 1
print(len(liczby))
for i in range(len(liczby)):
    print(liczby[i], end = ", ")