#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n;
cin >> n;
vector<string> a(n), b(n);
for (string &s : a) cin >> s;
for (string &s : b) cin >> s;
// 顺时针转 90 度:格子 (i, j) 变成 (j, n - 1 - i)
auto rotate90 = [&](const vector<string> &g) {
vector<string> r(n, string(n, ' '));
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
r[j][n - 1 - i] = g[i][j];
}
}
return r;
};
// 反射:每一行左右翻转(以中央铅垂线为轴的镜像)
auto reflect = [&](const vector<string> &g) {
vector<string> r = g;
for (string &row : r) reverse(row.begin(), row.end());
return r;
};
// 1~3:转 90 / 180 / 270 度
vector<string> cur = a;
for (int k = 1; k <= 3; k++) {
cur = rotate90(cur);
if (cur == b) {
cout << k << "\n";
return 0;
}
}
// 4:反射
cur = reflect(a);
if (cur == b) {
cout << 4 << "\n";
return 0;
}
// 5:先反射再转 90 / 180 / 270 度
for (int k = 1; k <= 3; k++) {
cur = rotate90(cur);
if (cur == b) {
cout << 5 << "\n";
return 0;
}
}
// 6:不改变
if (a == b) {
cout << 6 << "\n";
return 0;
}
// 7:无效转换
cout << 7 << "\n";
return 0;
}