#include #include #include using namespace std; const int MAXN = 1005; int numKey = 0, N; char key[MAXN][MAXN], message[MAXN][MAXN]; pair curKey[MAXN*MAXN], prevKey[MAXN*MAXN]; void Rotate90() { for (int i = 0; i < numKey; i++) curKey[i] = make_pair(prevKey[i].second, N-prevKey[i].first-1); for (int i = 0; i < numKey; i++) prevKey[i] = curKey[i]; sort(prevKey, prevKey+numKey); } int main() { while (true) { numKey = 0; scanf("%d", &N); if (N == 0) return 0; for (int i = 0; i < N; i++) { scanf("%s", key[i]); for (int j = 0; j < N; j++) if (key[i][j] == 'O') prevKey[numKey++] = make_pair(i,j); } for (int i = 0; i < N; i++) scanf("%s", message[i]); for (int i = 0; i < 4; i++) { for (int j = 0; j < numKey; j++) printf("%c", message[prevKey[j].first][prevKey[j].second]); Rotate90(); } printf("\n"); } return 0; }