import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;


public class Display {

	public static BufferedReader inp;
	static char[][] matica;
	static char[][] matB;
	static int n;
	public static void main(String[] args) throws IOException {
		String input;
		inp = new BufferedReader (new InputStreamReader(System.in));
		String[] retazce;
		String prikaz;
		while ((input = inp.readLine()) != null){
			n = Integer.parseInt(input);
			retazce = new String[n];
			matica = new char[n][n];
			matB = new char[n][n];
			retazce = new String[n];
			matica = new char[n][n];
			for (int i = 0; i < n; i++) {
				retazce[i] = inp.readLine();
			}
			for(int i = 0; i < n; i++){
				for(int j = 0; j < n; j++) {
					matica[i][j] = retazce[i].charAt(j);
				}
			}
			prikaz = inp.readLine();
			for(int i = 0; i < prikaz.length(); i++){
				vykonajVymeny(prikaz.charAt(i));
			}
			for(int i = 0; i < n; i++){
				for(int j = 0; j < n; j++) {
					System.out.print(matica[i][j]);
				}
				System.out.println();
			}
		}
		
	}
	
	static void vykonajVymeny(char operator){
		switch (operator){
		case '<':
			for(int i = 0; i < n; i++){
				for(int j = 0; j < n; j++){
					matB[i][j] = matica[j][n-i-1];
				}
			}
			for(int i = 0; i < n; i++){
				for(int j = 0; j < n; j++){
					switch(matB[i][j]){
					case '<':
						matB[i][j] = 'v';
						break;
					case '>':
						matB[i][j] = '^';
						break;
					case '^':
						matB[i][j] = '<';
						break;
					case 'v':
						matB[i][j] = '>';
						break;
					case 'o':
						matB[i][j] = 'o';
						break;
					case 'x':
						matB[i][j] = 'x';
						break;
					case '|':
						matB[i][j] = '-';
						break;
					case '-':
						matB[i][j] = '|';
						break;
					case '/':
						matB[i][j] = '\\';
						break;
					case '\\':
						matB[i][j] = '/';
						break;
					}
				}
			}
			break;
		case '>':
			for(int i = 0; i < n; i++){
				for(int j = 0; j < n; j++){
					matB[i][j] = matica[n-j-1][i];
				}
			}
			for(int i = 0; i < n; i++){
				for(int j = 0; j < n; j++){
					switch(matB[i][j]){
					case '<':
						matB[i][j] = '^';
						break;
					case '>':
						matB[i][j] = 'v';
						break;
					case '^':
						matB[i][j] = '>';
						break;
					case 'v':
						matB[i][j] = '<';
						break;
					case 'o':
						matB[i][j] = 'o';
						break;
					case 'x':
						matB[i][j] = 'x';
						break;
					case '|':
						matB[i][j] = '-';
						break;
					case '-':
						matB[i][j] = '|';
						break;
					case '/':
						matB[i][j] = '\\';
						break;
					case '\\':
						matB[i][j] = '/';
						break;
					}
				}
			}
			break;
		case '-':
			for(int i = 0; i < n; i++){
				for(int j = 0; j < n; j++){
					matB[i][j] = matica[i][n-j-1];
				}
			}
			for(int i = 0; i < n; i++){
				for(int j = 0; j < n; j++){
					switch(matB[i][j]){
					case '<':
						matB[i][j] = '<';
						break;
					case '>':
						matB[i][j] = '>';
						break;
					case '^':
						matB[i][j] = 'v';
						break;
					case 'v':
						matB[i][j] = '^';
						break;
					case 'o':
						matB[i][j] = 'o';
						break;
					case 'x':
						matB[i][j] = 'x';
						break;
					case '|':
						matB[i][j] = '|';
						break;
					case '-':
						matB[i][j] = '-';
						break;
					case '/':
						matB[i][j] = '\\';
						break;
					case '\\':
						matB[i][j] = '/';
						break;
					}
				}
			}
			break;
		case '|':
			for(int i = 0; i < n; i++){
				for(int j = 0; j < n; j++){
					matB[i][j] = matica[n-i-1][j];
				}
			}
			for(int i = 0; i < n; i++){
				for(int j = 0; j < n; j++){
					switch(matB[i][j]){
					case '<':
						matB[i][j] = '>';
						break;
					case '>':
						matB[i][j] = '<';
						break;
					case '^':
						matB[i][j] = '^';
						break;
					case 'v':
						matB[i][j] = 'v';
						break;
					case 'o':
						matB[i][j] = 'o';
						break;
					case 'x':
						matB[i][j] = 'x';
						break;
					case '|':
						matB[i][j] = '|';
						break;
					case '-':
						matB[i][j] = '-';
						break;
					case '/':
						matB[i][j] = '\\';
						break;
					case '\\':
						matB[i][j] = '/';
						break;
					}
				}
			}
			break;
		case '/':
			for(int i = 0; i < n; i++){
				for(int j = 0; j < n; j++){
					matB[i][j] = matica[n-j-1][n-i-1];
				}
			}
			for(int i = 0; i < n; i++){
				for(int j = 0; j < n; j++){
					switch(matB[i][j]){
					case '<':
						matB[i][j] = 'v';
						break;
					case '>':
						matB[i][j] = '^';
						break;
					case '^':
						matB[i][j] = '>';
						break;
					case 'v':
						matB[i][j] = '<';
						break;
					case 'o':
						matB[i][j] = 'o';
						break;
					case 'x':
						matB[i][j] = 'x';
						break;
					case '|':
						matB[i][j] = '-';
						break;
					case '-':
						matB[i][j] = '|';
						break;
					case '/':
						matB[i][j] = '/';
						break;
					case '\\':
						matB[i][j] = '\\';
						break;
					}
				}
			}
			break;
		case '\\':
			for(int i = 0; i < n; i++){
				for(int j = 0; j < n; j++){
					matB[i][j] = matica[j][i];
				}
			}
			for(int i = 0; i < n; i++){
				for(int j = 0; j < n; j++){
					switch(matB[i][j]){
					case '<':
						matB[i][j] = 'v';
						break;
					case '>':
						matB[i][j] = '^';
						break;
					case '^':
						matB[i][j] = '<';
						break;
					case 'v':
						matB[i][j] = '>';
						break;
					case 'o':
						matB[i][j] = 'o';
						break;
					case 'x':
						matB[i][j] = 'x';
						break;
					case '|':
						matB[i][j] = '-';
						break;
					case '-':
						matB[i][j] = '|';
						break;
					case '/':
						matB[i][j] = '\\';
						break;
					case '\\':
						matB[i][j] = '/';
						break;
					}
				}
			}
			break;
		}
		for(int i = 0; i < n; i++){
			for(int j = 0; j < n; j++){
				matica[i][j] = matB[i][j];
			}
		}
	}

}
