#55070: 我的極限


tororo06300@gmail.com (張凱逸)


import sys

def main():
    input = sys.stdin.read
    data = input().split()
    
    idx = 0
    while idx < len(data):
        n = int(data[idx])
        m = int(data[idx + 1])
        idx += 2
  
        points = []
        for _ in range(m):
            x = int(data[idx]) - 1
            y = int(data[idx + 1]) - 1
            points.append((x, y))
            idx += 2

        grid = [[' '] * n for _ in range(n)]

        for i in range(m):
            x, y = points[i]
            grid[x][y] = '*'
            
            if i + 1 < m:
                x2, y2 = points[i + 1]
                if x == x2:   
                    sy = 1 if y2 > y else -1
                    for j in range(y, y2 + sy, sy):
                        grid[x][j] = '*'
                else:  
                    sx = 1 if x2 > x else -1
                    for j in range(x, x2 + sx, sx):
                        grid[j][y] = '*'

        border = '-' * (n + 2)
        print(border)
        for row in grid:
            print('|' + ''.join(row) + '|')
        print(border)

if __name__ == "__main__":
    main()