program biantaiti;
var a:array[1..200,1..200]of char;
b:array[1..200,1..200]of integer;
n,m,x1,x2,y1,y2,x3,z1,z2:integer;
procedure huatu(i,j:integer);
var k1,k2:integer;
begin
a[i,j]:='+';
a[i,j+4]:='+';
a[i-3,j]:='+';
a[i-3,j+4]:='+';
a[i-2,j+6]:='+';
a[i-5,j+2]:='+';
a[i-5,j+6]:='+';
a[i-4,j+1]:='/';
a[i-4,j+5]:='/';
a[i-1,j+5]:='/';
for k1:=j+3 to j+5 do a[i-5,k1]:='-';
for k1:=j+1 to j+3 do a[i-3,k1]:='-';
for k1:=j+1 to j+3 do a[i,k1]:='-';
for k1:=i-1 downto i-2 do a[k1,j]:='|';
for k1:=i-1 downto i-2 do a[k1,j+4]:='|';
for k1:=i-3 downto i-4 do a[k1,j+6]:='|';
for k1:=i-1 downto i-2 do
for k2:=j+1 to j+3 do a[k1,k2]:=' ';
for k1:=j+2 to j+4 do a[i-4,k1]:=' ';
a[i-3,j+5]:=' ';
a[i-2,j+5]:=' ';
end;
begin
readln(n,m);
for x1:=1 to n do begin
for x2:=1 to m do
read(b[x1,x2]);
readln;
end;
y1:=0;
for x1:=1 to n do
for x2:=1 to m do
if y1<b[x1,x2]*3+1+(n-x1+1)*2 then
y1:=b[x1,x2]*3+1+(n-x1+1)*2;
y2:=m*4+n*2+1;
z1:=y1;
z2:=y2;
for x1:=1 to y1 do
for x2:=1 to y2 do
a[x1,x2]:='.';
y2:=n*2-1;
y1:=y1-2*n+2;
for x1:=1 to n do begin
for x2:=1 to m do begin
for x3:=1 to b[x1,x2] do begin
huatu(y1,y2);
y1:=y1-3;
end;
y1:=y1+3*b[x1,x2];
y2:=y2+4;
end;
y1:=y1+2;
y2:=1+(n-x1-1)*2;
end;
for x1:=1 to z1 do begin
for x2:=1 to z2 do
write(a[x1,x2]);
writeln;
end;
readln;
end.
var a:array[1..200,1..200]of char;
b:array[1..200,1..200]of integer;
n,m,x1,x2,y1,y2,x3,z1,z2:integer;
procedure huatu(i,j:integer);
var k1,k2:integer;
begin
a[i,j]:='+';
a[i,j+4]:='+';
a[i-3,j]:='+';
a[i-3,j+4]:='+';
a[i-2,j+6]:='+';
a[i-5,j+2]:='+';
a[i-5,j+6]:='+';
a[i-4,j+1]:='/';
a[i-4,j+5]:='/';
a[i-1,j+5]:='/';
for k1:=j+3 to j+5 do a[i-5,k1]:='-';
for k1:=j+1 to j+3 do a[i-3,k1]:='-';
for k1:=j+1 to j+3 do a[i,k1]:='-';
for k1:=i-1 downto i-2 do a[k1,j]:='|';
for k1:=i-1 downto i-2 do a[k1,j+4]:='|';
for k1:=i-3 downto i-4 do a[k1,j+6]:='|';
for k1:=i-1 downto i-2 do
for k2:=j+1 to j+3 do a[k1,k2]:=' ';
for k1:=j+2 to j+4 do a[i-4,k1]:=' ';
a[i-3,j+5]:=' ';
a[i-2,j+5]:=' ';
end;
begin
readln(n,m);
for x1:=1 to n do begin
for x2:=1 to m do
read(b[x1,x2]);
readln;
end;
y1:=0;
for x1:=1 to n do
for x2:=1 to m do
if y1<b[x1,x2]*3+1+(n-x1+1)*2 then
y1:=b[x1,x2]*3+1+(n-x1+1)*2;
y2:=m*4+n*2+1;
z1:=y1;
z2:=y2;
for x1:=1 to y1 do
for x2:=1 to y2 do
a[x1,x2]:='.';
y2:=n*2-1;
y1:=y1-2*n+2;
for x1:=1 to n do begin
for x2:=1 to m do begin
for x3:=1 to b[x1,x2] do begin
huatu(y1,y2);
y1:=y1-3;
end;
y1:=y1+3*b[x1,x2];
y2:=y2+4;
end;
y1:=y1+2;
y2:=1+(n-x1-1)*2;
end;
for x1:=1 to z1 do begin
for x2:=1 to z2 do
write(a[x1,x2]);
writeln;
end;
readln;
end.