#include char x[80][80]; int main() { int i,j,a,b,k,l,m,n; char s[100],fz,sz; while (1) { scanf("%d %d",&a,&b); if (a==0 && b==0) break; for (i=1;i<=b;i++) for (j=1;j<=a;j++) x[i][j]=' '; for (i=0;i<=a+1;i++) x[0][i]=x[b+1][i]='-'; for (i=0;i<=b+1;i++) x[i][0]=x[i][a+1]='|'; x[0][0]=x[0][a+1]=x[b+1][0]=x[b+1][a+1]='+'; for (i=0;i<=b+1;i++) x[i][a+2]=0; while (1) { scanf("%s",s); if (s[1]=='I') /*LINE*/ { scanf("%d %d %d %d",&l,&k,&n,&m); if (k==m) { if (l>n) { i=l;l=n;n=i; } for (i=l;i<=n;i++) if (x[k][i]!='-' && x[k][i]!='+') { if (x[k][i]==' ') {x[k][i]='-'; }else { if (x[k][i]=='|') {x[k][i]='+';} else x[k][i]='*'; } } } else if (l==n) { if (k>m) { i=k;k=m;m=i; } for (i=k;i<=m;i++) if (x[i][l]!='|' && x[i][l]!='+') { if (x[i][l]==' ') {x[i][l]='|'; }else { if (x[i][l]=='-') {x[i][l]='+';} else x[i][l]='*'; } } } else { if (k>m) { i=k;k=m;m=i;i=l;l=n;n=i; } if (l=1 && i>=1 && j<=a && i<=b) { if (x[i][j]==' ') x[i][j]='o'; else if (x[i][j]!='o') x[i][j]='*'; } } else if (s[1]=='L') /*CLEAR*/ { scanf("%d %d %d %d",&l,&k,&n,&m); if (l>n) { i=n; n=l; l=i; } if (mb) m=b; if (n>a) n=a; for (i=k;i<=m;i++) for (j=l;j<=n;j++) x[i][j]=' '; } else if (s[1]=='R') break; } for (i=0;i<=b+1;i++) printf("%s\n",x[i]); printf("\n"); } return 0; }