var
i,j,k,l,m,n,p,q,x0,y0:longint;
a,pa:array[1..1000,1..1000]of char;
b:array[1..6,1..7]of char;
c:array[1..1000,1..7]of char;
shu:array[1..100,1..100]of longint;
procedure yige;
begin
b[1,3]:='+';b[1,7]:='+';b[3,1]:='+';b[3,5]:='+';b[6,1]:='+';
b[6,5]:='+';b[4,7]:='+';
b[1,4]:=chr(45);b[1,5]:=chr(45);b[1,6]:=chr(45);
b[3,2]:=chr(45);b[3,3]:=chr(45);b[3,4]:=chr(45);
b[6,2]:=chr(45);b[6,3]:=chr(45);b[6,4]:=chr(45);
b[2,2]:=chr(47);b[2,6]:=chr(47);b[5,6]:=chr(47);
b[2,7]:=chr(124);b[3,7]:=chr(124);
b[4,1]:=chr(124);b[4,5]:=chr(124);
b[5,1]:=chr(124);b[5,5]:=chr(124);
b[2,3]:=' '; b[2,4]:=' '; b[2,5]:=' ';
b[4,2]:=' '; b[4,3]:=' '; b[4,4]:=' ';
b[5,2]:=' '; b[5,3]:=' '; b[5,4]:=' ';
b[3,6]:=' ';b[4,6]:=' ';b[1,1]:='.';b[1,2]:='.';b[2,1]:='.';
b[6,6]:='.';b[6,7]:='.';b[5,7]:='.';
end;
procedure yilie(x:longint);
var
d,e,f,g:longint;
begin
d:=x*3+3;
for e:=1 to 6 do
for f:=1 to 7 do
c[e,f]:=b[e,f];
for e:=1 to x do
for f:=e*3+1 to e*3+6 do
for g:=1 to 7 do if (c[f,g]='.') then c[f,g]:=c[f-3,g];
c[d,6]:='.';c[d,7]:='.';c[d-1,7]:='.';
k:=d;
end;
procedure yipai(x:longint);
var
d,e,f,g:longint;
begin
d:=n;
while shu[x,d]=0 do d:=d-1;
p:=d;e:=0;
for d:=1 to p do if shu[x,d]>e then e:=shu[x,d];
d:=e*3+3;
for e:=1 to p do
begin
for f:=1 to shu[x,e]*3+3 do
for g:=1 to 7 do c[f,g]:='.';
yilie(shu[x,e]);
for f:=d downto d-k+1 do
begin
for g:=1 to 7 do
if not(c[f+k-d,g]='.')then pa[f,(e-1)*4+g]:=c[f+k-d,g];
end;
end;
l:=d;
p:=p*4+3;
end;
procedure yidui ;
var
d,e,f,g:longint;
begin
x0:=0;y0:=0;l:=0;
while l=0 do
begin
for i:=1 to 1000 do
for j:=1 to 1000 do pa[i,j]:='.';
yipai(m);
if l=0 then m:=m-1;
end;
l:=0;q:=1;
while l=0 do
begin
for i:=1 to 1000 do
for j:=1 to 1000 do pa[i,j]:='.';
yipai(q);
if l=0 then q:=q+1;
end;
for d:=q to m do
begin
for i:=1 to 1000 do
for j:=1 to 1000 do pa[i,j]:='.';
yipai(d);
if l+(m-d+1)*2-2>x0 then x0:=l+(m-d+1)*2-2;
if p+(m-d+1)*2-2>y0 then y0:=p+(m-d+1)*2-2;
end;
for d:=m downto q do
begin
for i:=1 to 1000 do
for j:=1 to 1000 do pa[i,j]:='.';
yipai(d);
for i:=x0-l+1-(m-d+1)*2+2 to x0-(m-d+1)*2+2 do
for j:=1+(m-d+1)*2-2 to p+(m-d+1)*2-2 do
if a[i,j]='.' then a[i,j]:=pa[i-x0+l+((m-d+1)*2-2),j-((m-d+1)*2-2)];
end;
end;
begin
yige;
readln(m,n);
for i:=1 to m do
begin
for j:=1 to n do
read(shu[i,j]);
readln;
end;
for i:=1 to 1000 do
for j:=1 to 1000 do a[i,j]:='.';
yidui;
for i:=1 to x0 do
begin
for j:=1 to y0 do
write(a[i,j]);
writeln;
end;
{ yipai(1);
for i:=1 to l do
begin
for j:=1 to p do
write(pa[i,j]);
writeln;
end;}
end.
/**************************************************************
Problem: 2279
User: admin
Language: Pascal
Result: Wrong Answer
****************************************************************/