#include <bits/stdc++.h>
using namespace std;
int n, a[11][11], b[11][11], c[11][11];
bool do1()
{
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= n; j++)
{
b[j][n - i + 1] = a[i][j];
}
}
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= n; j++)
{
if (b[i][j] != c[i][j]) return false;
}
}
return true;
}
bool do2()
{
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= n; j++)
{
b[n - i + 1][n - j + 1] = a[i][j];
}
}
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= n; j++)
{
if (b[i][j] != c[i][j]) return false;
}
}
return true;
}
bool do3()
{
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= n; j++)
{
b[n - j + 1][i] = a[i][j];
}
}
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= n; j++)
{
if (b[i][j] != c[i][j]) return false;
}
}
return true;
}
bool do4()
{
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= n; j++)
{
b[i][n - j + 1] = a[i][j];
}
}
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= n; j++)
{
if (b[i][j] != c[i][j]) return false;
}
}
return true;
}
bool do5()
{
do4();
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= n; j++)
{
a[i][j] = b[i][j];
}
}
if (do1()) return 1;
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= n; j++)
{
a[i][j] = b[i][j];
}
}
if (do2()) return 1;
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= n; j++)
{
a[i][j] = b[i][j];
}
}
if (do3()) return 1;
return 0;
}
bool do6()
{
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= n; j++)
{
if (b[i][j] != c[i][j]) return false;
}
}
return true;
}
void solve()
{
if (do1())
{
cout << 1 << endl;
return;
}
if (do2())
{
cout << 2 << endl;
return;
}
if (do3())
{
cout << 3 << endl;
return;
}
if (do4())
{
cout << 4 << endl;
return;
}
if (do5())
{
cout << 5 << endl;
return;
}
if (do6())
{
cout << 6 << endl;
return;
}
cout << 7 << endl;
return;
}
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 >> c[i][j];
}
}
solve();
return 0;
}