var a:array[0..101] of longint;
    i,j,k,l,n,m:longint;

begin
read(n);
k:=1;
a[k]:=1;
while a[k]<=n do
  begin
  inc(k);
  a[k]:=a[k-1]*2;
  end;
writeln(k-1);
for i:=1 to k-1 do
write(a[i],' ');
end.