#include <stdio.h>
#define N 15
char tarmap[N][N];
int len;
int Check(char transmap[][N]);
void One(char transmap[][N],char orimap[][N]);
void Two(char transmap[][N],char orimap[][N]);
void Three(char transmap[][N],char orimap[][N]);
void Four(char transmap[][N],char orimap[][N]);
int main(){
char orimap[N][N] = {'\0'};
char transmap[N][N] = {'\0'};
scanf ("%d",&len);
getchar();
for (int i = 1; i <= len; i++) {
for (int j = 1; j <= len; j++) {
scanf ("%c",&orimap[i][j]);
}
getchar();
}
for (int i = 1; i <= len; i++) {
for (int j = 1; j <= len; j++) {
scanf ("%c",&tarmap[i][j]);
}
getchar();
}
One(transmap,orimap);
if (Check(transmap) == 1) {
printf ("1");
return 0;
}
Two(transmap,orimap);
if (Check(transmap) == 1) {
printf ("2");
return 0;
}
Three(transmap,orimap);
if (Check(transmap) == 1) {
printf ("3");
return 0;
}
Four(transmap,orimap);
if (Check(transmap) == 1) {
printf ("4");
return 0;
} else {
char orimap1[N][N];
for (int i = 1; i <= len; i++) {
for (int j = 1; j <= len; j++) {
orimap1[i][j] = transmap[i][j];
}
}
One(transmap,orimap1);
if (Check(transmap) == 1) {
printf ("5");
return 0;
}
Two(transmap,orimap1);
if (Check(transmap) == 1) {
printf ("5");
return 0;
}
Three(transmap,orimap1);
if (Check(transmap) == 1) {
printf ("5");
return 0;
}
}
int check = 1;
for (int i = 1; i <= len; i++) {
for (int j = 1; j <= len; j++) {
if (orimap[i][j] != tarmap[i][j]) {
check = 0;
}
}
}
if (check == 1) {
printf ("6");
} else {
printf ("7");
}
return 0;
}
int Check(char transmap[][N]) {
int check = 1;
for (int i = 1; i <= len; i++) {
for (int j = 1; j <= len; j++) {
if (transmap[i][j] != tarmap[i][j]) {
check = 0;
return 0;
}
}
}
return 1;
}
void One(char transmap[][N],char orimap[][N]){
for (int i = 1; i <= len; i++) {
for (int j = 1; j <= len; j++) {
transmap[j][len + 1 - i] = orimap[i][j];
}
}
return;
}
void Two(char transmap[][N],char orimap[][N]){
for (int i = 1; i <= len; i++) {
for (int j = 1; j <= len; j++) {
transmap[len + 1 - i][len + 1 - j] = orimap[i][j];
}
}
return;
}
void Three(char transmap[][N],char orimap[][N]){
for (int i = 1; i <= len; i++) {
for (int j = 1; j <= len; j++) {
transmap[len + 1 - j][i] = orimap[i][j];
}
}
return;
}
void Four(char transmap[][N],char orimap[][N]){
for (int i = 1; i <= len; i++) {
for (int j = 1; j <= len; j++) {
transmap[i][len + 1 - j] = orimap[i][j];
}
}
return;
}