#include<stdio.h>
#include<stdlib.h>
int n;
char **origin;
char **code;
void codeRead(char *code[], char *origin[],int n)
{
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
if(code[i][j] == 'O')
printf("%c",origin[i][j]);
}
}
}
void codeRotate(char *code[],int n)
{
char **code2;
code2 = (char**)malloc(sizeof(char*) * n);
for (int i = 0; i < n; i++)
{
code2[i] = (char*)malloc(sizeof(char) * n);
for(int j = 0; j < n; j++)
{
code2[i][j] = code[i][j];
}
}
for (int i = 0; i < n; i++)
{
for (int j = n - 1; j >= 0; j--)
{
code[j][n - i - 1] = code2[i][j];
}
}
}
void codeInput(char **code,int n)
{
for (int i = 0; i < n; i++)
{
code[i] = (char*)malloc(sizeof(char) * n);
for (int j = 0; j < n; j++)
{
code[i][j] = getchar();
}
getchar();
}
}
void codePrint(char *code[],int n)
{
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
printf("%c",code[i][j]);
}
printf("\n");
}
}
int main()
{
scanf("%d",&n);
getchar();
code = (char**)malloc(sizeof(char*) * n);
origin = (char**)malloc(sizeof(char*) * n);
codeInput(code,n);
codeInput(origin,n);
for (int i = 0; i < 4; i++)
{
if(i > 0)
codeRotate(code,n);
codeRead(code, origin, n);
}
}