#include using namespace std; int main () { ios::sync_with_stdio(false); long long m; while ( cin >> m ) { vector > grid(m, vector(m,0)); long long n; cin >> n; for ( long long i = 0 ; i < n; ++i ) { long long s; long long x, y; cin >> s >> x >> y; if ( x < -1 || x > m || y >= m || y < -10 ) continue; if ( x >= 0 && x < m ) { if ( y >= 0) { if (!s) { grid[x][y] = 111; } else { grid[x][y] = '|'; } } if (s) if ( ( y + s + 1 ) < m ) grid[x][y+s+1] = '^'; for ( long long j = max(0ll,y+1); j <= min(y+s,m-1); ++j ) grid[x][j] = '|'; } if ( x > 0 ) { for ( long long j = max(0ll,y+1); j <= min(y+s,m-1); ++j ) grid[x-1][j] = '/'; if ( y >= 0 ) grid[x-1][y] = '_'; } if ( x < m-1 ) { for ( long long j = max(0ll, y+1); j <= min(y+s, m-1); ++j ) grid[x+1][j] = '\\'; if ( y >= 0 ) grid[x+1][y] = '_'; } } for ( int i = 0; i < m+2; ++i) cout << '*'; cout << endl; for ( int i = m-1; i >= 0; --i) { cout << '*'; for ( int j = 0; j < m; ++j) { if (grid[j][i] != 0) cout << grid[j][i]; else cout << '.'; } cout << '*' << endl; } for ( int i = 0; i < m+2; ++i) cout << '*'; cout << endl; cout << endl; } return 0; }