#include <bits/stdc++.h>
using namespace std;
char a[1001][1001], b[1001][1001], c[1001][1001];
int n;
int t1(char a[][1001], char b[][1001]) {
int sum = 0;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
if (a[i][j] == b[j][n - i + 1])
sum++;
}
}
if (sum == n * n) {
return 1;
}
return 0;
}
int t2(char a[][1001], char b[][1001]) {
int sum = 0;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
if (a[i][j] == b[n - i + 1][n - j + 1])
sum++;
}
}
if (sum == n * n) {
return 2;
}
return 0;
}
int t3(char a[][1001], char b[][1001]) {
int sum = 0;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
if (a[i][j] == b[n - j + 1][i])
sum++;
}
}
if (sum == n * n) {
return 3;
}
return 0;
}
int t4(char a[][1001], char b[][1001]) {
int sum = 0;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
if (a[i][j] == b[i][n - j + 1])
sum++;
}
}
if (sum == n * n) {
return 4;
}
return 0;
}
int t6(char a[][1001], char b[][1001]) {
int sum = 0;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
if (a[i][j] == b[i][j])
sum++;
}
}
if (sum == n * n) {
return 6;
}
return 0;
}
int main() {
cin >> n;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++)
cin >> a[i][j];
}
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++)
cin >> b[i][j];
}
if (t1(a, b)) {
cout << 1;
return 0;
}
if (t2(a, b)) {
cout << 2;
return 0;
}
if (t3(a, b)) {
cout << 3;
return 0;
}
if (t4(a, b)) {
cout << 4;
return 0;
}
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++)
c[i][j] = a[i][n - j + 1];
}
if (t1(c, b)) {
cout << 5;
return 0;
}
if (t2(c, b)) {
cout << 5;
return 0;
}
if (t3(c, b)) {
cout << 5;
return 0;
}
if (t6(a, b)) {
cout << 6;
return 0;
}
cout << 7;
return 0;
}