#include #include char *draw; int m; void put (char c, int x, int y) { if ((x >= 0) && (x < m) && (y >= 0) && (y < m)) *(draw + y*m + x) = c; } int main() { int i,j, n, s, x, y; while (1) { if (scanf("%d %d", &m, &n) != 2) break; draw = malloc(sizeof(char)*m*m); for (i = 0; i < m; i++) for (j = 0; j < m; j++) *(draw + i*m + j) = '.'; for (i = 0; i < n; i++) { scanf("%d %d %d", &s, &x, &y); if (s == 0) { put('_', x - 1, y); put('_', x + 1, y); put('o', x, y); } else { put('_', x - 1, y); put('_', x + 1, y); put('|', x, y); for (j = 1; j <= s; j++) { put('/', x - 1, y + j); put((char) 92, x + 1, y + j); put('|', x, y + j); } put ('^', x, y + s + 1); } } for (j = -1; j <= m; j++) printf("*"); printf("\n"); for (i = m - 1; i >= 0; i--){ printf("*"); for (j = 0; j < m; j++) printf("%c", *(draw + i*m + j)); printf("*\n"); } for (j = -1; j <= m; j++) printf("*"); printf("\n"); } return 0; }