import sys data = sys.stdin.read().split() if not data: exit() n = int(data[0]) m = int(data[1]) ans = [] for i in range(n): ans.extend(list(data[2 + i])) q = [0] * (n * m) head = 0 tail = 0 for c in range(m): if ans[c] == '.': ans[c] = '^' q[tail] = c tail += 1 for c in range(m): pos = (n - 1) * m + c if ans[pos] == '.': ans[pos] = 'v' q[tail] = pos tail += 1 for r in range(n): pos = r * m if ans[pos] == '.': ans[pos] = '<' q[tail] = pos tail += 1 for r in range(n): pos = r * m + (m - 1) if ans[pos] == '.': ans[pos] = '>' q[tail] = pos tail += 1 while head < tail: pos = q[head] head += 1 r = pos // m c = pos % m if r > 0: npos = pos - m if ans[npos] == '.': ans[npos] = 'v' q[tail] = npos tail += 1 if r < n - 1: npos = pos + m if ans[npos] == '.': ans[npos] = '^' q[tail] = npos tail += 1 if c > 0: npos = pos - 1 if ans[npos] == '.': ans[npos] = '>' q[tail] = npos tail += 1 if c < m - 1: npos = pos + 1 if ans[npos] == '.': ans[npos] = '<' q[tail] = npos tail += 1 out = [] for r in range(n): out.append("".join(ans[r * m : (r + 1) * m])) print("\n".join(out))