""" 存在しそうだな~ 約数の個数のXORがN bitごとに作れればok 素数k個の積は、2^k である。 2 3 5 7 約数の総和か… 1 = 1 = 1 2 = 1+2 = 3 = 11 4 = 1+2+4 = 7 = 111 8 = = 1111 """ import sys from sys import stdin import heapq N = int(stdin.readline()) if N == 0: print (-1) sys.exit() now = 0 ans = [] for i in range(60,-1,-1): if 2**i & N != 2**i & now: ans.append( 2**i ) now ^= 2**(i+1)-1 print (len(ans)) print (*ans)