#include #include #include using namespace std; typedef long long ll; char map[110][110]; int m,n; int valid(int x, int y){ if(x >= 0 && x < m+2 && y >= 0 && y < m+2) return true; return true; } int main(void){ while(scanf("%d %d", &m, &n) == 2){ int s,x,y; for(int x = 0; x < m+2; x++) for(int y = 0; y < m+2; y++) map[x][y]='.'; for(int i = 0; i < n; i++){ scanf("%d %d %d", &s, &x, &y); x++; y++; if(s==0){ if(valid(x,y)){ map[x][y] = 'o'; // printf("o je na %d %d\n", x,y); if(valid(x-1,y)) map[x-1][y] = '_'; if(valid(x+1,y)) map[x+1][y] = '_'; } } else{ if(valid(x,y)){ map[x][y] = '|'; //. printf("_ je na %d %d\n", x,y); if(valid(x-1,y)) map[x-1][y] = '_'; if(valid(x+1,y)) map[x+1][y] = '_'; } int yhat = y+s+1; if(valid(x,yhat)){ // printf("^ je na %d %d\n", x,yhat); map[x][yhat] = '^'; } int ys = max(0,y+1); for(int yy = ys; yy < yhat; yy++){ if(valid(x,yy)){ map[x][yy] = '|'; if(valid(x-1,yy)) map[x-1][yy] = '/'; if(valid(x+1,yy)) map[x+1][yy] = '\\'; } } } } for(int x = 0; x < m+2; x++){ map[x][0] = '*'; map[0][x] = '*'; map[x][m+1] = '*'; map[m+1][x] = '*'; } for(int y = m+1; y >= 0; y--){ for(int x = 0; x < m+2; x++){ printf("%c", map[x][y]); } printf("\n"); } printf("\n"); } return 0; }