var f,g:text;a,b:array [1..100] of integer;d,n,k,i:integer;
procedure xl;
var i,t:integer;s:string;
begin
s:='';t:=a[1];
for i:=2 to n do
if b[i]=0 then
begin
t:=t+a[i];
s:=s+'+';
end
else begin
t:=t-a[i];
s:=s+'-';
end;
if t mod k=0 then
begin
inc(d);
writeln(g,1,s);
end;
end;
procedure try(i:integer);
var j:0..1;
begin
if d>0 then exit;
for j:=0 to 1 do
begin
b[i]:=j;
if i=n then xl else try(i+1);
if d>0 then break;
end;
end;
Begin
assign(f,'sign.inp');reset(f);
assign(g,'sign.out');rewrite(g);
readln(f,n,k);
for i:=1 to n do read(f,a[i]);
try(2);
if d=0 then writeln(g,d);
close(g);
End.