#include using namespace std; void turnClockWise( char display[102][102], int inputSize ) { char tmp [102][102]; for ( int i = 0; i < inputSize; ++i ) for ( int j = 0; j < inputSize; ++j ) tmp [i][j] = display[i][j]; for ( int i = inputSize - 1; i >= 0; --i ) for ( int j = 0; j < inputSize; ++j ) { switch ( tmp [i][j] ) { case '-' : display [j][inputSize - 1 - i] = '|'; break; case '/' : display [j][inputSize - 1 - i] = '\\'; break; case '<' : display [j][inputSize - 1 - i] = '^'; break; case '>' : display [j][inputSize - 1 - i] = 'v'; break; case '\\' : display [j][inputSize - 1 - i] = '/'; break; case '^' : display [j][inputSize - 1 - i] = '>'; break; case 'o' : display [j][inputSize - 1 - i] = 'o'; break; case 'v' : display [j][inputSize - 1 - i] = '<'; break; case 'x' : display [j][inputSize - 1 - i] = 'x'; break; case '|' : display [j][inputSize - 1 - i] = '-'; break; } } } void flipVertically( char display[102][102], int inputSize ) { char tmp [102][102]; for ( int i = 0; i < inputSize; ++i ) for ( int j = 0; j < inputSize; ++j ) tmp [i][j] = display[i][j]; for ( int i = 0; i < inputSize; ++i ) for ( int j = 0; j < inputSize; ++j ) { switch ( tmp [i][inputSize - 1 - j] ) { case '-' : display [i][j] = '-'; break; case '/' : display [i][j] = '\\'; break; case '<' : display [i][j] = '>'; break; case '>' : display [i][j] = '<'; break; case '\\' : display [i][j] = '/'; break; case '^' : display [i][j] = '^'; break; case 'o' : display [i][j] = 'o'; break; case 'v' : display [i][j] = 'v'; break; case 'x' : display [i][j] = 'x'; break; case '|' : display [i][j] = '|'; break; } } } int main ( ) { char display[102][102], operation, whitespace; int inputSize, state; while ( scanf(" %d ",&inputSize) == 1 ) { for ( int i = 0; i < inputSize; ++i ) { fgets(display[i],102,stdin); } state = 0; //scanf("%c",&whitespace); while ( scanf("%c%c",&operation,&whitespace) == 2 ) { switch ( state ) { case 0 : switch ( operation ) { case '>' : state = 1; break; case '<' : state = 3;break; case '-' : state = 6;break; case '|' : state = 4;break; case '\\' : state = 7;break; case '/' : state = 5;break; } break; case 1 : switch ( operation ) { case '>' : state = 2; break; case '<' : state = 0;break; case '-' : state = 5;break; case '|' : state = 7;break; case '\\' : state = 6;break; case '/' : state = 4;break; } break; case 2 : switch ( operation ) { case '>' : state = 3; break; case '<' : state = 1;break; case '-' : state = 4;break; case '|' : state = 6;break; case '\\' : state = 5;break; case '/' : state = 7;break; } break; case 3 : switch ( operation ) { case '>' : state = 0; break; case '<' : state = 2;break; case '-' : state = 7;break; case '|' : state = 5;break; case '\\' : state = 4;break; case '/' : state = 6;break; } break; case 4 : switch ( operation ) { case '>' : state = 5; break; case '<' : state = 7;break; case '-' : state = 2;break; case '|' : state = 0;break; case '\\' : state = 3;break; case '/' : state = 1;break; } break; case 5 : switch ( operation ) { case '>' : state = 6; break; case '<' : state = 4;break; case '-' : state = 1;break; case '|' : state = 3;break; case '\\' : state = 2;break; case '/' : state = 0;break; } break; case 6 : switch ( operation ) { case '>' : state = 7; break; case '<' : state = 5;break; case '-' : state = 0;break; case '|' : state = 2;break; case '\\' : state = 1;break; case '/' : state = 3;break; } break; case 7 : switch ( operation ) { case '>' : state = 4; break; case '<' : state = 6;break; case '-' : state = 3;break; case '|' : state = 1;break; case '\\' : state = 0;break; case '/' : state = 2;break; } break; } if ( whitespace == '\n' ) break; } switch ( state ) { case 0 : break; case 1 : turnClockWise( display, inputSize ); break; case 2 : turnClockWise( display, inputSize ); turnClockWise( display, inputSize ); break; case 3 : turnClockWise( display, inputSize ); turnClockWise( display, inputSize ); turnClockWise( display, inputSize ); break; case 4 : flipVertically( display, inputSize ); break; case 5 : flipVertically( display, inputSize ); turnClockWise( display, inputSize ); break; case 6 : flipVertically( display, inputSize ); turnClockWise( display, inputSize ); turnClockWise( display, inputSize ); break; case 7 : flipVertically( display, inputSize ); turnClockWise( display, inputSize ); turnClockWise( display, inputSize ); turnClockWise( display, inputSize ); break; } for ( int i = 0; i < inputSize; ++i ) printf ( "%s", display[i]); } return 0; }