#include<cstring>
int a[310][310],n,m,k=0,l=0;
char p[10010][10010];
int max(int a,int b) { return a>b?a:b; }
int main()
{
memset(a,0,sizeof(a));
scanf("%d %d",&m,&n);
for(int i=1;i<=m;i++)
for(int j=1;j<=n;j++) scanf("%d",&a[m+1-i][j]);
for(int i=1;i<=m;i++)
for(int j=1;j<=n;j++) { l=max(l,2*i+4*j+1); k=max(k,2*i+3*a[i][j]+1); }
for(int i=1;i<=k;i++)
for(int j=1;j<=l;j++) p[i][j]='.';
for(int i=m;i>=1;i--)
for(int j=1;j<=n;j++)
for(int k1=1;k1<=a[i][j];k1++)
{
int x=2*i+3*k1-4,y=2*i+4*j-5;
//---------------------------------------------------------------------------------
p[ x ][ y ]='+';
p[ x ][y+4]='+';
p[x+2][y+6]='+';
p[x+3][ y ]='+';
p[x+3][y+4]='+';
p[x+5][y+2]='+';
p[x+5][y+6]='+';
//---------------------------------------------------------------------------------
p[ x ][y+1]='-';
p[ x ][y+2]='-';
p[ x ][y+3]='-';
p[x+3][y+1]='-';
p[x+3][y+2]='-';
p[x+3][y+3]='-';
p[x+5][y+3]='-';
p[x+5][y+4]='-';
p[x+5][y+5]='-';
//---------------------------------------------------------------------------------
p[x+1][ y ]='|';
p[x+1][y+4]='|';
p[x+2][ y ]='|';
p[x+2][y+4]='|';
p[x+3][y+6]='|';
p[x+4][y+6]='|';
//---------------------------------------------------------------------------------
p[x+1][y+1]=' ';
p[x+1][y+2]=' ';
p[x+1][y+3]=' ';
p[x+2][y+1]=' ';
p[x+2][y+2]=' ';
p[x+2][y+3]=' ';
p[x+2][y+5]=' ';
p[x+3][y+5]=' ';
p[x+4][y+2]=' ';
p[x+4][y+3]=' ';
p[x+4][y+4]=' ';
//----------------------------------------------------------------------------------
p[x+1][y+5]='/';
p[x+4][y+1]='/';
p[x+4][y+5]='/';
}
for(int i=k;i>=1;i--)
{
for(int j=1;j<=l;j++) printf("%c",p[i][j]);
printf("\n");
}
return 0;
}