#include using namespace std; #define FOR(i,a,b) for (int i = (a); i <= (b); i++) #define FORD(i,a,b) for (int i = (a); i >= (b); i--) #define REP(i,b) for (int i = 0; i < (b); i++) const int N = 100000; const int M = 105; int m, n; char cc[M][M]; inline void draw(int x, int y, char c) { if (x >= 0 && x < m && y >= 0 && y < m) { cc[y][x] = c; } } int main() { while (scanf("%d%d", &m, &n) == 2) { REP(i, m) REP(j, m) cc[i][j] = '.'; REP(i, n) { int s, x, y; scanf("%d%d%d", &s, &x, &y); if (s == 0) { draw(x - 1, y, '_'); draw(x, y, 'o'); draw(x + 1, y, '_'); } else { draw(x - 1, y, '_'); draw(x, y, '|'); draw(x + 1, y, '_'); FOR(j, 1, s) { draw(x - 1, y + j, '/'); draw(x, y + j, '|'); draw(x + 1, y + j, '\\'); } draw(x, y + s + 1, '^'); } } REP(i, m) cc[i][m] = '\0'; REP(i, m+2) printf("*"); printf("\n"); FORD(i, m - 1, 0) { printf("*%s*\n", cc[i]); } REP(i, m+2) printf("*"); printf("\n"); printf("\n"); } return 0; }