uses
	math;
const
	maxn = 100;
var
	i, j, n: longint;
	a, p: array [0..maxn] of longint;
begin
	randseed := 134576521;

	n := 8 + 8;
	for i := 1 to 8 do begin
		a[i] := 1 shl (i - 1);
	end;
	for i := 9 to 16 do begin
		a[i] := 200 - (1 shl (i - 9)) - random(2);
	end;

	for i := 1 to n do begin
		j := random(i) + 1;
		p[i] := p[j];
		p[j] := i;
	end;

	writeln(n);
	for i := 1 to n do begin
		write(a[p[i]]);
		if (i < n) then
			write(' ');
	end;
	writeln;
end.