#include <iostream>
#include <string>
using namespace std;
string a[11],b[11],c[11];
int n;
bool ff=1;
bool judge()
{
for (int i=1;i<=n;i++)
for (int j=1;j<=n;j++)
if (b[i][j]!=c[i][j])
return 0;
return 1;
}
void work1()
{
for (int i=1;i<=n;i++)
for (int j=1;j<=n;j++)
b[j][n-i+1]=a[i][j];
}
void work2()
{
for (int i=1;i<=n;i++)
for (int j=1;j<=n;j++)
b[n-i+1][n-j+1]=a[i][j];
}
void work3()
{
for (int i=1;i<=n;i++)
for (int j=1;j<=n;j++)
b[n-j+1][i]=a[i][j];
}
void work4()
{
for (int i=1;i<=n;i++)
for (int j=1;j<=n;j++)
b[i][n-j+1]=a[i][j];
}
void work5()
{
string d[11];
work4();
for (int i=1;i<=n;i++)
for (int j=1;j<=n;j++)
d[i][j]=b[i][j];
for (int i=1;i<=n;i++)
for (int j=1;j<=n;j++)
b[j][n-i+1]=d[i][j];
for (int i=1;i<=n;i++)
for (int j=1;j<=n;j++)
if (c[i][j]!=d[i][j])
ff=0;
if (ff)
return;
else
ff=1;
for (int i=1;i<=n;i++)
for (int j=1;j<=n;j++)
b[n-i+1][n-j+1]=d[i][j];
for (int i=1;i<=n;i++)
for (int j=1;j<=n;j++)
if (c[i][j]!=d[i][j])
ff=0;
if (ff)
return;
else
ff=1;
for (int i=1;i<=n;i++)
for (int j=1;j<=n;j++)
b[n-j+1][i]=d[i][j];
for (int i=1;i<=n;i++)
for (int j=1;j<=n;j++)
if (c[i][j]!=d[i][j])
ff=0;
}
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];
work1();
if (judge())
{
cout<<1;
return 0;
}
work2();
if (judge())
{
cout<<2;
return 0;
}
work3();
if (judge())
{
cout<<3;
return 0;
}
work4();
if (judge())
{
cout<<4;
return 0;
}
work5();
if (ff)
{
cout<<5;
return 0;
}
bool flag=1;
for (int i=1;i<=n;i++)
for (int j=1;j<=n;j++)
if (a[i][j]!=c[i][j])
flag=0;
if (flag)
{
cout<<7;
return 0;
}
cout<<7;
return 0;
}