#include<bits/stdc++.h>
using namespace std;
int main() {
int n; cin >> n;
char s[3][11][11];
bool t1 = true, t2 = true;//t1判断是否相同,t2避免翻转后还需翻转
string s1;
for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++) {
cin >> s[0][i][j];
}
for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++) {
cin >> s[1][i][j];
if (s[0][i][j] != s[1][i][j]) t1 = false;//输入同时判断是否相同
}
if (t1) { s1 += "6"; cout << s1; return 0; }
a1: int t = 3;
//每次while旋转90度,共三次
while (t--) {
t1 = true;
for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++) {
s[2][i][j] = s[0][n - j - 1][i];
}
for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++) {
s[0][i][j] = s[2][i][j];
if (s[0][i][j] != s[1][i][j]) t1 = false;
}
if (t1) { s1 += 3 - t + '0'; cout << s1; return 0; }
} if (!t2) { cout << "7"; return 0; }
//再旋转一次,让其恢复到未旋转的状态
for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++) {
s[2][i][j] = s[0][n - j - 1][i];
}
for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++) {
s[0][i][j] = s[2][i][j];
if (s[0][i][j] != s[1][i][j]) t1 = false;
}
t1 = true;
//翻转
for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++) {
s[2][i][j] = s[0][i][n - j - 1];
}
for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++) {
s[0][i][j] = s[2][i][j];
if (s[0][i][j] != s[1][i][j]) t1 = false;
}
if (t1) { cout << "4"; return 0; }
//组合
else if (t2) { s1 += "5"; t2 = false; goto a1; }
cout << "7";
}