import numpy as np
from functools import reduce

translation = [
	"<^>v",
	"xxxx",
	"oooo",
	"|-|-",
]

def translate(arr, size, pos, slash, command):
	for i in range(size):
		for j in range(size):
			for t in translation:
				if arr[i,j] in t:
					if arr[i,j] in "^v" and command == "|":
						continue
					if arr[i,j] in "<>" and command == "-":
						continue
					if arr[i,j] in "^" and command in "/":
						arr[i,j] = ">"
						continue
					elif arr[i,j] in ">" and command in "/":
						arr[i,j] = "^"
						continue
					elif arr[i,j] in "v" and command in "/":
						arr[i,j] = "<"
						continue
					elif arr[i,j] in "<" and command in "/":
						arr[i,j] = "v"	
						continue
					elif arr[i,j] in "^" and command in "\\":
						arr[i,j] = "<"
						continue
					elif arr[i,j] in ">" and command in "\\":
						arr[i,j] = "v"
						continue
					elif arr[i,j] in "v" and command in "\\":
						arr[i,j] = ">"
						continue
					elif arr[i,j] in "<" and command in "\\":
						arr[i,j] = "^"	
						continue
						
					arr[i,j] = t[(t.index(arr[i,j]) + pos) % 4]
			if arr[i,j] in "\\/" and slash:
				if arr[i, j] == "/":
					arr[i, j] = "\\"
				else:
					arr[i, j] = "/"					


try:
	while True:
		size = int(input())
		mat = []
		for i in range(size):
			mat.append(list(input()))
		
		arr = np.array(mat)

		prep = []
		for c in input().split():
			if c == "<":
				prep.append("<")
			if c == ">":
				prep.append("<")
				prep.append("<")
				prep.append("<")
			if c == "-":
				prep.append("-")
			if c == "|":
				prep.append("<")
				prep.append("-")
				prep.append("<")
				prep.append("<")
				prep.append("<")
			if c == "/":
				prep.append("<")
				prep.append("-")
				prep.append("<")
				prep.append("<")
			if c == "\\":
				prep.append("-")
				prep.append("<")
				prep.append("<")
				prep.append("<")

		f = 0
		flipped = False
		for c in prep:
			if c == "<" and flipped:
				f = (f + 1) % 4
			elif c == "<":
				f = (f - 1) % 4
			else:
				flipped = not flipped
			
		for i in range(4 - f):
			arr = np.rot90(arr)		
			translate(arr, size, -1, True, "<")
		if flipped:
			arr = np.flipud(arr)
			translate(arr, size, 2, True, "-")		

		
			
		"""			
		if f == 1:
			arr = np.rot90(arr)
			translate(arr, size, -1, True, "<")
		elif f == 3:
			arr = np.rot90(arr)
			arr = np.rot90(arr)
			arr = np.rot90(arr)	
			translate(arr, size, 1, True, ">")
		elif f == 4:
			arr = np.flipud(arr)
			translate(arr, size, 2, True, "-")
		elif f == 6:
			arr = np.fliplr(arr)
			translate(arr, size, 2, True, "|")
		elif f == 2:
			arr = np.rot90(arr)
			translate(arr, size, -1, True, "<")
			arr = np.rot90(arr)
			translate(arr, size, -1, True, "<")
		elif f == 5:
			arr = arr.transpose()
			translate(arr, size, 1, False, "\\")
		elif f == 7:
			arr = np.rot90(arr)	
			arr = arr.transpose()
			arr = np.rot90(arr)
			arr = np.rot90(arr)
			arr = np.rot90(arr)
			translate(arr, size, -1, False, "/")
		"""
			
		for i in range(size):
			for j in range(size):
				print(arr[i,j], end="")
			print()
		
except EOFError:
	pass
