#include char map[126][126]; void init() { map[60][60] = 'v'; map[60][62] = '^'; map[60][45] = '<'; map[60][124] = '>'; map[60][92] = '^'; map[60][47] = 'v'; map[118][60] = '>'; map[118][62] = '<'; map[118][45] = '^'; map[118][124] = 'v'; map[118][92] = '>'; map[118][47] = '<'; map[62][60] = '^'; map[62][62] = 'v'; map[62][45] = '>'; map[62][124] = '<'; map[62][92] = 'v'; map[62][47] = '^'; map[94][60] = '<'; map[94][62] = '>'; map[94][45] = 'v'; map[94][124] = '^'; map[94][92] = '<'; map[94][47] = '>'; map[45][60] = '|'; map[45][62] = '|'; map[45][45] = '-'; map[45][124] = '-'; map[45][92] = '|'; map[45][47] = '|'; map[124][60] = '-'; map[124][62] = '-'; map[124][45] = '|'; map[124][124] = '|'; map[124][92] = '-'; map[124][47] = '-'; map[47][60] = '\\'; map[47][62] = '\\'; map[47][45] = '\\'; map[47][124] = '\\'; map[47][92] = '/'; map[47][47] = '/'; map[92][60] = '/'; map[92][62] = '/'; map[92][45] = '/'; map[92][124] = '/'; map[92][92] = '\\'; map[92][47] = '\\'; map[111][60] = 'o'; map[111][62] = 'o'; map[111][45] = 'o'; map[111][124] = 'o'; map[111][92] = 'o'; map[111][47] = 'o'; map[120][60] = 'x'; map[120][62] = 'x'; map[120][45] = 'x'; map[120][124] = 'x'; map[120][92] = 'x'; map[120][47] = 'x'; } int main(void){ int i, j, n; char a; // action to do char pole[102][102]; char pom[102][102]; init(); while (scanf(" %d", &n) == 1) { getchar(); // consumes '\n' for (i = 0; i < n; i++) { // n lines of input for (j = 0; j < n; j++) { // n columns of input pole[i][j] = getchar(); } getchar(); // skips '\n' } while (true) { a = getchar(); for (i = 0; i < n; i++) { for (j = 0; j < n; j++) { if (a == '|') pom[i][n-j-1] = map[(int)pole[i][j]][124]; else if (a == '-') pom[n-i-1][j] = map[(int)pole[i][j]][45]; else if (a == '<') pom[n-j-1][i] = map[(int)pole[i][j]][60]; else if (a == '>') pom[j][n-i-1] = map[(int)pole[i][j]][62]; else if (a == '\\') pom[j][i] = map[(int)pole[i][j]][92]; else if (a == '/') pom[n-j-1][n-i-1] = map[(int)pole[i][j]][47]; } } for (i = 0; i < n; i++) { for (j = 0; j < n; j++) { pole[i][j] = pom[i][j]; } } if (getchar() == '\n') break; // skips space or \n } for (i = 0; i < n; i++) { for (j = 0; j < n; j++) putchar(pole[i][j]); putchar('\n'); } } return 0; }