#include using namespace std; #define FOR(i,a,b) for(auto i=a;i; using vvi=vector; using pii=pair; vector> p; int n, m; bool dr(int x, int y, char c) { if (x >= n || x < 0 || y >= n || y < 0) return false; p[y][x] = c; return true; } void tree(int s, int x, int y) { if (s == 0) { dr(x - 1, y, '_'); dr(x, y, 'o'); dr(x + 1, y, '_'); return; } dr(x - 1, y, '_'); dr(x, y, '|'); dr(x + 1, y, '_'); for (int i = 1; i <= s; ++ i) { dr(x - 1, y - i, '/'); dr(x, y - i, '|'); dr(x + 1, y - i, '\\'); } dr(x, y - s - 1, '^'); } int main(){ ios::sync_with_stdio(false);cout.tie(0);cin.tie(0); while (1) { cin >> n >> m; p = vector>(n, vector(n, '.')); if (!cin) break; for (int i = 0; i < m; ++ i) { int s, x, y; cin >> s >> x >> y; tree(s, x, n - y - 1); } for (int i = 0; i < n + 2; ++ i) cout << '*'; cout << endl; for (int i = 0; i < n; ++ i) { cout << '*'; for (int j = 0; j < n; ++ j) { cout << p[i][j]; } cout << '*' << endl; } for (int i = 0; i < n + 2; ++ i) cout << '*'; cout << endl; cout << endl; } return 0; }