program arith; const maxl=300; maxp=1000000; type tlong=array[0..maxl] of integer; var pp:array[0..6] of integer; a,b:tlong; r:array[1..600] of tlong; t:integer; op:char; ch:char; procedure init; var i:integer; begin pp[0]:=1; for i:=1 to 6 do pp[i]:=pp[i-1]*10; end; procedure read_long(var l:tlong); var i:integer; ii:integer; p:integer; j:integer; k:integer; tab:array[1..1000] of integer; begin i:=0; while (ch in ['0'..'9']) do begin inc(i); tab[i]:=ord(ch)-ord('0'); if (eof) or (eoln) then break; read(ch); end; fillchar(l,sizeof(l),0); l[0]:=(i+5) div 6; { for j:=1 to i do Write(tab[j]);Writeln; } j:=0; while (i>0) do begin p:=1; k:=0; for ii:=1 to 6 do begin if (i+1-ii<1) then break; k:=k+p*tab[i+1-ii]; p:=p*10; end; inc(j); l[j]:=k; { Writeln('k=',k);} i:=i-6; end; end; function l_count(var l:tlong):integer; var i:integer; v:integer; begin if (l[0]=0) then l_count:=1 else begin i:=(l[0]-1)*6; v:=l[l[0]]; while (v>0) do begin inc(i); v:=v div 10; end; if (i=0) then i:=1; l_count:=i; end; end; procedure write_long(ll:integer;var l:tlong); var i,j:integer; len:integer; v,d:integer; s:string; l_c:integer; begin l_c:=l_count(l); for i:=l_c+1 to ll do Write(' '); len:=l[0]; if len=0 then Write('0'); for i:=len downto 1 do begin v:=l[i]; if (i=len) then Write(v:1) else begin s:=''; for j:=1 to 6 do begin d:=v mod 10; v:=v div 10; s:=chr(ord('0')+d)+s; end; Write(s); end; end; end; procedure read_data; begin read(ch); read_long(a); op:=ch; read(ch); read_long(b); { Write_long(a);Writeln; Write_long(b);Writeln; Writeln('op=',op);} end; procedure l_add(var l1,l2,res:tlong); var i,j:integer; m:integer; v,v1,v2:integer; begin i:=1; m:=0; while (m>0) or (i<=l1[0]) or (i<=l2[0]) do begin v1:=0;v2:=0; if (i<=l1[0]) then v1:=l1[i]; if (i<=l2[0]) then v2:=l2[i]; v:=(v1+v2+m); res[i]:=v mod maxp; m:=v div maxp; res[0]:=i; inc(i); end; end; procedure l_sub(var l1,l2,res:tlong); var i,j:integer; len1,len2:integer; v,v1,v2:integer; m:integer; begin len1:=l1[0]; len2:=l2[0]; m:=0; for i:=1 to len1 do begin v1:=l1[i]; v2:=0; if (i<=len2) then v2:=l2[i]; v1:=v1-m; if (v10) do begin v1:=0; if (i<=len1) then v1:=l1[i]; v:=v1*d; res[i]:=v mod maxp; m:=v div maxp; res[0]:=i; inc(i); end; end; procedure simplify(var l:tlong); var i:integer; begin i:=l[0]; while (i>0) do begin if (l[i]=0) then dec(i) else break; end; l[0]:=i; end; procedure l_shift(var l:tlong;count:integer;var res:tlong); var i:integer; j:integer; d:integer; v:integer; d_no:integer; d_no2:integer; len:integer; begin fillchar(res,sizeof(res),0); len:=l[0]; for i:=1 to len do begin v:=l[i]; for j:=1 to 6 do begin d:=v mod 10; v:=v div 10; d_no:=(i-1)*6+j+count+5; d_no2:=(j-1)+count; inc(res[d_no div 6],d*pp[d_no2 mod 6]); end; end; res[0]:=len+((count+5) div 6); simplify(res); end; procedure write_answer(s1,s2:integer;res:integer); var i,j:integer; m:integer; m1:integer; l:integer; begin m:=0; m:=l_count(a); if (l_count(b)+1)>m then m:=l_count(b)+1; m1:=m; for i:=s1 to s2 do begin j:=l_count(r[i])+i-s1; if (j>m) then m:=j; end; if (l_count(r[res])>m) then m:=l_count(r[res]); Write_long(m,a); Writeln; l:=l_count(b); for i:=1 to m-l-1 do Write(' '); Write(op); Write_long(0,b); Writeln; if (s10) do begin dec(t); read_data; solve; Writeln; if (t>0) then readln; end; end.