#include <bits/stdc++.h>
using namespace std;
char map[15][15],t[15][15],ans[15][15];
long long n;
bool v;
int main()
{
scanf("%d\n",&n);
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
scanf("%c",&map[i][j]);
}
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
scanf("%c",&ans[i][j]);
}
}
v=true;
for (int i=1;i<=n;i++)
{
for (int j=1;j<=n;j++)
{
t[i][j]=map[n-j+1][i];
if (t[i][j]!=ans[i][j]) {v=false; break;}
}
}
if (v)
{
printf("1");
return 0;
}
v=true;
for (int i=1;i<=n;i++)
{
for (int j=1;j<=n;j++)
{
t[i][j]=map[n-i+1][n-j+1];
if (t[i][j]!=ans[i][j])
{
v=false;
break;
}
}
}
if (v) {
printf("2");
return 0;
}
v=true;
for (int i=1;i<=n;i++)
{
for (int j=1;j<=n;j++)
{
t[i][j]=map[j][n-i+1];
if (t[i][j]!=ans[i][j]) {v=false; break;}
}
}
if (v) {
printf("3");
return 0;
}
v=true;
for (int i=1;i<=n;i++)
{
for (int j=1;j<=n;j++)
{
t[i][j]=map[i][n-j+1];
if (t[i][j]!=ans[i][j]) {v=false; break;}
}
}
if (v) {printf("4");return 0;}
for (int i=1;i<=n;i++)
{
for (int j=1;j<=n;j++)
{
t[i][j]=map[i][n-j+1];
}
}
for (int i=1;i<=n;i++)
{
for (int j=1;j<=n;j++)
{
map[i][j]=t[i][j];
}
}
v=true;
for (int i=1;i<=n;i++)
{
for (int j=1;j<=n;j++)
{
t[i][j]=map[n-j+1][i];
if (t[i][j]!=ans[i][j]) {v=false; break;}
}
if (v) {printf("5");return 0;}
v=true;
for (int i=1;i<=n;i++)
{
for (int j=1;j<=n;j++)
{
t[i][j]=map[n-i+1][n-j+1];
if (t[i][j]!=ans[i][j]) {v=false; break;}
}
}
if (v) {printf("5");return 0;}
v=true;
for (int i=1;i<=n;i++)
{
for (int j=1;j<=n;j++)
{
t[i][j]=map[j][n-i+1];
if (t[i][j]!=ans[i][j]) {v=false; break;}
}
}
if (v) {printf("5");return 0;}
v=true;
for (int i=1;i<=n;i++)
{
for (int j=1;j<=n;j++)
{
if (map[i][j]!=ans[i][j]) {v=false; break;}
}
}
if (v)
{
printf("6");
return 0;
}
printf("7");
}