#include char mask[1000][1001], text[1000][1001]; int main() { while (true) { int n; scanf("%d", &n); if (n == 0) break; gets(mask[0]); for (int i = 0; i < n; i++) { gets(mask[i]); } for (int i = 0; i < n; i++) { gets(text[i]); } for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { if (mask[i][j] == 'O') { putchar(text[i][j]); } } } for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { if (mask[n - j - 1][i] == 'O') { putchar(text[i][j]); } } } for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { if (mask[n - i - 1][n - j - 1] == 'O') { putchar(text[i][j]); } } } for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { if (mask[j][n - i - 1] == 'O') { putchar(text[i][j]); } } } putchar('\n'); } }