#include<iostream>
using namespace std;
int main() {
int n;
cin >> n;
char s1[12][12], s2[12][12];
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
cin >> s1[i][j];
}
}
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
cin >> s2[i][j];
}
}
char a[12][12];
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
a[i][n - j + 1] = s1[j][i];
}
}
char b[12][12];
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
b[i][j] = s1[n - i + 1][n - j + 1];
}
}
char c[12][12];
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
c[i][j] = s1[j][n - i + 1];
}
}
char d[12][12];
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
d[n - i + 1][j] = a[j][i];
}
}
char e1[12][12], e2[12][12], e3[12][12];
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
e1[n - i + 1][j] = a[j][i];
e2[n - i + 1][j] = a[j][i];
e3[n - i + 1][j] = a[j][i];
}
}
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
e1[i][n - j + 1] = s1[j][i];
}
}
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
e2[i][j] = s1[n - i + 1][n - j + 1];
}
}
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
e3[i][j] = s1[j][n - i + 1];
}
}
char f[12][12];
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
f[i][j] = s1[i][j];
}
}
bool flag;
flag = 1;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
if (a[i][j] != s2[i][j]) {
flag = 0;
break;
}
}
if (flag == 0) break;
}
if (flag == 1) {
cout << 1;
return 0;
}
flag = 1;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
if (b[i][j] != s2[i][j]) {
flag = 0;
break;
}
}
if (flag == 0) break;
}
if (flag == 1) {
cout << 2;
return 0;
}
flag = 1;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
if (c[i][j] != s2[i][j]) {
flag = 0;
break;
}
}
if (flag == 0) break;
}
if (flag == 1) {
cout << 3;
return 0;
}
flag = 1;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
if (d[i][j] != s2[i][j]) {
flag = 0;
break;
}
}
if (flag == 0) break;
}
if (flag == 1) {
cout << 4;
return 0;
}
flag = 1;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
if (e1[i][j] != s2[i][j]) {
flag = 0;
break;
}
}
if (flag == 0) break;
}
if (flag == 1) {
cout << 5;
return 0;
}
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
if (e2[i][j] != s2[i][j]) {
flag = 0;
break;
}
}
if (flag == 0) break;
}
if (flag == 1) {
cout << 5;
return 0;
}
flag = 1;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
if (e3[i][j] != s2[i][j]) {
flag = 0;
break;
}
}
if (flag == 0) break;
}
if (flag == 1) {
cout << 5;
return 0;
}
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
if (f[i][j] != s2[i][j]) {
flag = 0;
break;
}
}
if (flag == 0) break;
}
if (flag == 1) {
cout << 6;
return 0;
}
cout << 7;
return 0;
}