# 3番目の条件と4番目の条件から0:n0個,1:n1個(1<=n0+n1<=30)の数列を考えれば良い # この時biの順番は関係なくn0,n1の個数のみが各条件に作用する # この時合計2となる選び方はcomb(n1,2) x pow(2,n0)なのでこれがKとなるn0,n1を全探索する # min n1 = 1として良い(長さは1以上なくてはならない1を含まなくて良い解はK=0のときのみだがK=0はb=[1]でもOK) K = int(input()) for n1 in range(1,31): for n0 in range(31): if n1 + n0 > 30: break if (n1 * (n1-1) // 2) * pow(2,n0) == K: b = [1] * n1 + [0] * n0 print(len(b)) print(*b) exit()