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
34
35
36
37
38
39
40
41
42
43
44
45
46
liczbyBitow = []
suma = 0
sumyBitow = []

for i in range(1, 130000):
    binarnie = '{0:b}'.format(i)
    # print(binarnie)
    liczbaBitow = binarnie.count('1')
    # print(liczbaBitow)
    liczbyBitow.append(liczbaBitow)
    suma += liczbaBitow
    sumyBitow.append(suma)


# print(liczbyBitow)
# print(sumyBitow

n = int(input())

for i in range(0, len(sumyBitow)):
    if sumyBitow[i] >= n:
        # print(i)
        # print(sumyBitow)
        # print(sumyBitow[i])

        if sumyBitow[i] == n:
            print(i+1)
            for j in range(i+1, 0, -1):
                print(j, end=" ")
        else:
            doWyrzucenia = 0
            for j in range(i, -1, -1):
                # print(liczbyBitow[j])
                if liczbyBitow[j] == sumyBitow[i]-n:
                    # print(str(j+1) + " Do wyrzucenia")
                    doWyrzucenia = j+1
                    break

            print(i)
            for j in range(i+1, 0, -1):
                if j == doWyrzucenia:
                    pass
                else:
                    print(j, end=" ")

        break