def draw(S,X,Y):
    if 0<=X+1<M and 0<=Y<M:
        pole[X+1][Y]="_"
    if 0<=X-1<M and 0<=Y<M:
        pole[X-1][Y]="_"
    if S == 0:
        if 0<=X<M and 0<=Y<M:
            pole[X][Y]="o"
    else:
        if 0<=X<M and 0<=Y<M:
            pole[X][Y]="|"
        for i in range(1,S+1):
            if i >= M:
                break
            if 0<=X<M and 0<=Y+i<M:
                pole[X][Y+i]="|"
            if 0<=X+1<M and 0<=Y+i<M:
                pole[X+1][Y+i]="\\"
            if 0<=X-1<M and 0<=Y+i<M:
                pole[X-1][Y+i]="/"
        if 0<=X<M and 0<=Y+S+1<M:
            pole[X][Y+S+1]="^"

try:
    while 1:
        M, N = list(map(int, input().split()))
        pole = [["." for _ in range(M)] for _ in range(M)]
        for _ in range(N):
            draw(*list(map(int, input().split())))
        for i in range(M+2):
            print("#", end = "")
        print()
        for x in range(M-1,-1,-1):
            print("#", end = "")
            for y in range(M):
                print(pole[y][x], end="")
            print("#")
        for i in range(M+2):
            print("#", end = "")
        print()


except EOFError:
    pass

