G = [
[0, 1, 2, 3, 4, 5, 6, 7],
[1, 2, 3, 0, 5, 6, 7, 4], 
[2, 3, 0, 1, 6, 7, 4, 5], 
[3, 0, 1, 2, 7, 4, 5, 6],
[4, 7, 6, 5, 0, 3, 2, 1],
[5, 4, 7, 6, 1, 0, 3, 2], 
[6, 5, 4, 7, 2, 1, 0, 3],
[7, 6, 5, 4, 3, 2, 1, 0]]

pri1 = {
'<':'^',
'>':'v',
'^':'>',
'v':'<',
'\\':'/',
'|':'-',
'/':'\\',
'-':'|',
'x':'x',
'o':'o'
}

pri4 = {
'<':'^',
'>':'v',
'^':'<',
'v':'>',
'\\':'\\',
'|':'-',
'/':'/',
'-':'|',
'x':'x',
'o':'o'
}

pri6 = {
'<': 3,
'>': 1,
'\\':4,
'|':5,
'/':6,
'-':7
}
def f(commands):
	r = commands[0]
	for x in commands[1:]:
		r = G[x][r]
	return r

def metaf(K, tab):
	if K == 1:
		return r1(tab)
	elif K== 2:
		return r1(r1(tab))
	elif K == 3:
		return r1(r1(r1(tab)))
	elif K == 0:
		return r1(r1(r1(r1(tab))))
	elif K == 4:
		return a1(tab)
	elif K == 5:
		return r1(a1(tab))
	elif K == 6:
		return r1(r1(a1(tab)))
	elif K == 7:
		return r1(r1(r1(a1(tab))))
def r1(tab):
	new = []
	for _ in range(N):
		new.append(N*[0])
	for x in range(N):
		for y in range(N):
			new[x][N - 1 - y] = pri1[tab[y][x]]
	return new

def a1(tab):
	new = []
	for _ in range(N):
		new.append(N*[0])
	for x in range(N):
		for y in range(N):
			new[x][y] = pri4[tab[y][x]]
	return new

N = 0
while True:
	try:
		N = int(input())
	except:
		break
	
	tab = []
	for _ in range(N):
		tab.append(input())
	commands = input().split()
	
	commands = [pri6[c] for c in commands]
	com = f(commands)
	new = metaf(com, tab)
	for radek in new:
		for i in radek:
			print(i, end='')
		print()
	
