#include #include #include using namespace std; int main(void) { bool crflag = false; int n; while(cin >> n) { bool m1[9][9][9]; bool m2[9][9][9]; for(int y = 0; y < n; y++) { for(int x = 0; x < n; x++) { char c; cin >> c; for(int z = 0; z < 9; z++) { m1[x][y][z] = (z < (int)(c - '0')); } } } string s; cin >> s; for(int i = 0; i < s.length(); i++) { switch(s[i]) { case 'X': for(int x = 0; x < n; x++) for(int y = 0; y < n; y++) for(int z = 0; z < n; z++) m2[x][z][n-1-y] = m1[x][y][z]; break; case 'Y': for(int x = 0; x < n; x++) for(int y = 0; y < n; y++) for(int z = 0; z < n; z++) m2[z][y][n-1-x] = m1[x][y][z]; break; case 'Z': for(int x = 0; x < n; x++) for(int y = 0; y < n; y++) for(int z = 0; z < n; z++) m2[y][n-1-x][z] = m1[x][y][z]; break; } for(int x = 0; x < n; x++) for(int y = 0; y < n; y++) for(int z = 0; z < n; z++) m1[x][y][z] = m2[x][y][z]; } if(crflag) cout << endl; else crflag = true; for(int y = 0; y < n; y++) { for(int x = 0; x < n; x++) { int h = 0; for(int z = n - 1; z >= 0; z--) if(m1[x][y][z]) { h = z + 1; break; } cout << h; } cout << endl; } } return 0; }