function bin(k: longint): string;
var
	r: string;
begin
	r := '';
	while k > 0 do begin
		r := '01'[k mod 2 + 1] + r;
		k := k div 2;
	end;
	bin := copy(r, 2, length(r) - 1);
end;

var
	i, j, k, l, n: longint;
	sum: longint;
	r: string;
	ok: boolean;

begin
	n := 12;
	k := 0;
	writeln(n);
	for i := 0 to n do begin
		for j := 1 to 1 shl i do begin
			inc(k);
			r := bin(k);
			sum := 0;
			for l := 1 to length(r) do 
				if r[l] = '0' then 
					sum := sum + 1;

			ok := sum * (i - sum) = 20;

			writeln('-+'[ord(ok) + 1] + bin(k));
		end;
	end;
end.