#include <stdio.h>
int n;
char ch1[15][15], ch2[15][15], ch[15][15], c[15][15];
int one() {
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
ch[j][(n - 1) - i] = ch1[i][j];
}
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (ch[i][j] != ch2[i][j])
return 0;
}
}
return 1;
}
int two() {
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
ch[(n - 1) - i][(n - 1) - j] = ch1[i][j];
}
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (ch[i][j] != ch2[i][j])
return 0;
}
}
return 1;
}
int three() {
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
ch[(n - 1) - j][i] = ch1[i][j];
}
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (ch[i][j] != ch2[i][j])
return 0;
}
}
return 1;
}
int four() {
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
ch[i][(n - 1) - j] = ch1[i][j];
}
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (ch[i][j] != ch2[i][j])
return 0;
}
}
return 1;
}
int five() {
four();
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
c[i][j] = ch1[i][j];
}
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
ch1[i][j] = ch[i][j];
}
}
if (one()) {
return 1;
} else if (two()) {
return 1;
} else if (three()) {
return 1;
}
return 0;
}
int six() {
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (c[i][j] != ch2[i][j])
return 0;
}
}
return 1;
}
int main() {
int m, ans = 0;
scanf("%d", &n);
for (int i = 0; i < n; i++) {
scanf("%c", &m);
for (int j = 0; j < n; j++) {
scanf("%c", &ch1[i][j]);
}
}
for (int i = 0; i < n; i++) {
scanf("%c", &m);
for (int j = 0; j < n; j++) {
scanf("%c", &ch2[i][j]);
}
}
if (one()) {
ans = 1;
} else if (two()) {
ans = 2;
} else if (three()) {
ans = 3;
} else if (four()) {
ans = 4;
} else if (five()) {
ans = 5;
} else if (six()) {
ans = 6;
} else {
ans = 7;
}
printf("%d", ans);
return 0;
}