#include <stdio.h>
#include <string.h>
#include <stdlib.h>

#define MX 75
#define MY 75

int rx, ry;

char raster[MY+2][MX+2];
char col[256][256];

void Init() {
 // implicitne *
 for(int i = 0; i < 256; i++)
  for(int j = 0; j < 256; j++)
   col[i][j] = '*';

 // zapis na mezeru
 for(int i = 0; i < 255; i++)
  col[i][' '] = i;

 // zapis na to same
 for(int i = 0; i < 256; i++)
  col[i][i] = i;
 
 col['-']['-'] = '-';
 col['-']['|'] = '+';
 col['-']['+'] = '+';

 col['|']['|'] = '|';
 col['|']['-'] = '+';
 col['|']['+'] = '+';
 
 col['/']['/'] = '/';
 col['/']['\\'] = 'x';
 col['/']['x'] = 'x';
 
 col['\\']['\\'] = '\\';
 col['\\']['/'] = 'x';
 col['\\']['x'] = 'x';

 col['o']['o'] = 'o';   
}

void Border() {
 for(int i = 0; i <= ry+1; i++)
  for(int j = 0; j <= rx+1; j++)
   raster[i][j] = ' ';

 raster[0][0] = raster[ry+1][rx+1] = raster[0][rx+1] = raster[ry+1][0] = '+';

 for(int i = 1; i <= rx; i++)
  raster[0][i] = raster[ry+1][i] = '-';
 for(int i = 1; i <= ry; i++)
  raster[i][0] = raster[i][rx+1] = '|';
}

void Print() {
 for(int i = 0; i <= ry+1; i++) {
  for(int j = 0; j <= rx+1; j++) {
   printf("%c", raster[i][j]);
  }
  printf("\n");
 }
}

bool Valid(int x, int y) {
  return (x >= 1) && (x <= rx) && (y >= 1) && (y <= ry);
}

void Point() {
 int x, y;
 scanf("%d %d\n", &x, &y);
 if (Valid(x, y)) raster[y][x] = col['o'][raster[y][x]];
}

void Text() {
 int x, y;
 char text[256];
 scanf("%d %d %s\n", &x, &y, text);
 
 int index = 0;
 while(text[index] != 0) {
  if (Valid(x, y)) raster[y][x] = col[text[index]][raster[y][x]];
  x++;
  index++;
 }
}

void Clear() {
 int x1, y1, x2, y2, sw;
 scanf("%d %d %d %d\n", &x1, &y1, &x2, &y2);
 if (x1 > x2) { sw = x1; x1 = x2; x2 = sw; }
 if (y1 > y2) { sw = y1, y1 = y2; y2 = sw; }
 for(int j = y1; j <= y2; j++)
  for(int i = x1; i <= x2; i++)
   if (Valid(i, j)) raster[j][i] = ' ';
}

void Rewrite(int x, int y, char c) {
 if (Valid(x, y)) raster[y][x] = col[c][raster[y][x]];
}

void Line() {
 int x1, y1, x2, y2;
 scanf("%d %d %d %d\n", &x1, &y1, &x2, &y2);
 int dx = x2 - x1;
 int dy = y2 - y1;
 char c;

 if (dx != 0) dx = dx / abs(dx);
 if (dy != 0) dy = dy / abs(dy);

 if (dx == 0) c = '|';
 if (dy == 0) c = '-';
 if ( (dx == 1 && dy == 1) || (dx == -1 && dy == -1) ) c = '\\';
 if ( (dx == -1 && dy == 1) || (dx == 1 && dy == -1) ) c = '/';

 while(x1 != x2 || y1 != y2) {
  Rewrite(x1, y1, c);
  x1 += dx;
  y1 += dy;
 }
 Rewrite(x1, y1, c);
}

int main() {
 Init();
 char cmd[255];
 scanf("%d %d\n", &rx, &ry);
 while(rx > 0 && ry > 0) {
  Border();
  scanf("%s", cmd);
  while(strcmp(cmd, "PRINT") != 0) {
   
   if (strcmp(cmd, "POINT") == 0)
    Point();
   if (strcmp(cmd, "TEXT") == 0)
    Text();
   if (strcmp(cmd, "CLEAR") == 0)
    Clear();
   if (strcmp(cmd, "LINE") == 0)
    Line();
   
   scanf("%s", cmd);
    
  }
  Print();
  printf("\n");
  scanf("%d %d\n", &rx, &ry);
 }
 return 0;
}
