//昨天练习感觉很不错,把大二他们虐了。不是赢在时间上,而是赢在题量上。
//这道题我组是第一个解出来的,因此还让我们上台讲解题目。
//刚拿到这道题时根本没想,直接得出结论,这是一道很简单的模拟题。
//AC完之后听他们说这道题目很长,当时根本没想到。
//下面开始贴代码
#include<stdio.h>
#include<string.h>
#define MAXSIZE 80
char map[MAXSIZE][MAXSIZE];
int sizex,sizey;
void setpoint(int x,int y,char c){
if(map[y][x]==' ')map[y][x]=c;
else if(map[y][x]==c)return;
else if((map[y][x]=='-'||map[y][x]=='+'||map[y][x]=='|')&&
(c=='-'||c=='+'||c=='|'))map[y][x]='+';
else if((map[y][x]=='/'||map[y][x]=='x'||map[y][x]=='\\')&&
(c=='/'||c=='\\'||c=='x'))map[y][x]='x';
else map[y][x]='*';
}
void line(void){
int x1,x2,y1,y2,i;
scanf("%d%d%d%d",&x1,&y1,&x2,&y2);
if(x1==x2){
if(y1>y2){
i=y1;
y1=y2;
y2=i;
}
for(i=y1;i<=y2;++i)setpoint(x1,i,'|');
}else if(y1==y2){
if(x1>x2){
i=x1;
x1=x2;
x2=i;
}
for(i=x1;i<=x2;++i)setpoint(i,y1,'-');
}else if(x2-x1==y2-y1){
if(x1>x2){
i=x1;
x1=x2;
x2=i;
}
if(y1>y2){
i=y1;
y1=y2;
y2=i;
}
while(x1<=x2){
setpoint(x1,y1,'\\');
++x1;++y1;
}
}else if(x2-x1+y2-y1==0){
if(x1>x2){
i=x1;
x1=x2;
x2=i;
}
if(y1>y2){
i=y1;
y1=y2;
y2=i;
}
while(x1<=x2){
setpoint(x1,y2,'/');
++x1;--y2;
}
}
}
void point(void){
int x,y;
scanf("%d%d",&x,&y);
setpoint(x,y,'o');
}
void text(void){
int x,y,i;
char str[1023];
scanf("%d%d%s",&x,&y,str);
for(i=0;str[i]&&i+x<=sizex;++i)setpoint(i+x,y,str[i]);
}
void clear(void){
int x1,x2,y1,y2,i,j;
scanf("%d%d%d%d",&x1,&y1,&x2,&y2);
if(x1>x2){
i=x1;
x1=x2;
x2=i;
}
if(y1>y2){
i=y1;
y1=y2;
y2=i;
}
for(i=y1;i<=y2;++i)for(j=x1;j<=x2;++j)map[i][j]=' ';
}
void print(void){
int i,j;
printf("+");
for(i=1;i<=sizex;++i)printf("-");
printf("+\n");
for(i=1;i<=sizey;++i){
printf("|");
for(j=1;j<=sizex;++j)putchar(map[i][j]);
printf("|\n");
}
printf("+");
for(i=1;i<=sizex;++i)printf("-");
printf("+\n");
}
int main(){
char str[255];
int i,j,cas=0;
//freopen("C:/Users/lenovo/Desktop/stdin.txt","r",stdin);
//freopen("C:/Users/lenovo/Desktop/stdout.txt","w",stdout);
while(2==scanf("%d%d",&sizex,&sizey) && sizex>0 && sizey>0){
for(i=1;i<=sizey;++i)for(j=1;j<=sizex;++j)
map[i][j]=' ';
while(1){
scanf("%s",str);
if(strcmp(str,"LINE")==0)line();
else if(strcmp(str,"POINT")==0)point();
else if(strcmp(str,"TEXT")==0)text();
else if(strcmp(str,"CLEAR")==0)clear();
else if(strcmp(str,"PRINT")==0){
print();
break;
}
}
printf("\n");
}
return 0;
}