#include <iostream>
#include <algorithm>
#define maxn 15
using namespace std;
int a1[maxn][maxn];
int a2[maxn][maxn];
int main() {
int n;
while (cin >> n) {
for (int i = 1; i <= n; i++)
for (int j = 1; j <= n; j++)cin >> a1[i][j];
for (int i = 1; i <= n; i++)
for (int j = 1; j <= n; j++)cin >> a2[i][j];
int cnt = 3, ans = -1, flag1 = 0;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
if (a1[i][j] != a2[i][j])flag1 = 1;
}
}
if (flag1 == 0)ans = 0;
else {
while (cnt--) {
int a[maxn][maxn] = {0};
int flag = 0;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
a[j][n - i + 1] = a1[i][j];//每一次90度顺时针翻转都遵循
} //在上一次翻转结束后的基础上满足这个规律
}
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
a1[i][j] = a[i][j];
if (a1[i][j] != a2[i][j])flag = 1;
// cout<<a[i][j]<<" ";
}
// cout<<endl;
}
if (flag == 0) {
ans = 90 * (3 - cnt);
break;
}
}
}
cout << ans << endl;
}
}
// 64 位输出请用 printf("%lld")