def calc(zero, one) (1 << zero)*(one*(one-1)/2) end K = gets.to_i if K == 0 puts "1\n0"; exit end if K == 1 puts "2\n1 1"; exit end 3.upto(30) do |n| 2.upto(n) do |x| k = calc(n-x,x) if k == K p n puts ([0]*(n-x)+[1]*x)*" " exit end end end puts "ほげー!"