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