#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define FOR(i,a,b) for(int i=(a); i<(b); ++i) #define REP(i,n) for(int i=1; i<=(n); ++i) #define pb push_back #define INF 1000000001 #define EPS 10e-9 #define P 1000000007 typedef vector vi; typedef pair pii; #define st first #define nd second typedef long long ll; typedef unsigned long long ull; #define ISDEBUG 1 #define dprintf if(ISDEBUG) printf void PTAB(const vi& t) {FOR(i,0,t.size()) printf("%d ", t[i]); puts("");} #define DPTAB if(ISDEBUG) PTAB void rotate(char grid[1010][1010], int n) { FOR(i, 0, n/2) FOR(j, i, n-i-1) { char tmp = grid[i][j]; grid[i][j] = grid[n-j-1][i]; grid[n-j-1][i] = grid[n-i-1][n-j-1]; grid[n-i-1][n-j-1] = grid[j][n-i-1]; grid[j][n-i-1] = tmp; } } char grid[1010][1010]; char letters[1010][1010]; char res[4040]; int n; int main() { do { scanf("%d", &n); if (n <= 0) break; FOR(i, 0, n) scanf("%s", grid[i]); FOR(i, 0, n) scanf("%s", letters[i]); int rl = 0; FOR(q, 0, 4) { FOR(i, 0, n) FOR(j, 0, n) if(grid[i][j] == 'O') res[rl++] = letters[i][j]; //DPTAB(res); /*FOR(i, 0, n) { FOR(j, 0, n) printf("%c", grid[i][j]); puts(""); }*/ rotate(grid, n); // puts(""); } res[rl] = '\0'; printf("%s\n", res); } while (1); return 0; }