import java.util.Scanner;


public class Forest {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);

		while (sc.hasNext()) {
			int sirka = sc.nextInt();
			int pocet = sc.nextInt();
			
			
			
			char[][] mat = new char[sirka][sirka];
			for (int i = 0; i < sirka; i++) {
				for (int j = 0; j < sirka; j++) {
					mat[i][j] = '.';
				}
			}
			
			for (int i = 0; i < pocet; i++) {
				int vyska = sc.nextInt();
				int x = sc.nextInt();
				int y = sc.nextInt();
				
				
				if (vyska == 0) { 
					if (y >= 0 && y < sirka) {
						if (x >= 0 && x < sirka) {
							mat[x][y] = 'o';
						}
						if (x-1 >= 0 && x-1 < sirka) {
							mat[x-1][y] = '_';
						}
						if (x+1 >= 0 && x+1 < sirka) {
							mat[x+1][y] = '_';
						}
					}
					
					
					
				} else {
					
					if (y >= 0 && y < sirka) {
						if (x >= 0 && x < sirka) {
							mat[x][y] = '|';
						}
						if (x-1 >= 0 && x-1 < sirka) {
							mat[x-1][y] = '_';
						}
						if (x+1 >= 0 && x+1 < sirka) {
							mat[x+1][y] = '_';
						}
					}
					for (int j = y+1; j <= y+vyska; j++) {//rovna
						if (j >= 0 && j < sirka) {
							if (x >= 0 && x < sirka) {
								mat[x][j] = '|';
							}
							if (x-1 >= 0 && x-1 < sirka) {
								mat[x-1][j] = '/';
							}
							if (x+1 >= 0 && x+1 < sirka) {
								mat[x+1][j] = '\\';
							}
						}
					}
					
					int novey = y+vyska+1;
					if (novey >= 0 && novey < sirka && x >= 0 && x < sirka) {
						mat[x][novey] = '^';
					}
						
					
				}
			}

			for (int i = 0; i < sirka+2; i++) {
				System.out.print('*');
			}
			System.out.println();
			
			for (int i = sirka-1; i >= 0; i--) {
				System.out.print('*');
				for (int j = 0; j < sirka; j++) {
					System.out.print(mat[j][i]);
				}
				System.out.println('*');
			}
			for (int i = 0; i < sirka+2; i++) {
				System.out.print('*');
			}
			System.out.println();
			System.out.println();
		}

	}

}
