#include <iostream>
using namespace std;
char a[11][11],b[11][11],ans[11][11];
int n;
void retarn()
{
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++)
{
a[i][j] = b[i][j];
}
}
return ;
}
void reverse()
{
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++)
{
a[i][j] = b[i][j];
}
}
return ;
}
bool db()
{
for(int i = 1;i <= n;i++)
{
for(int j = 1;j <= n;j++)
{
if(a[i][j] != ans[i][j])
{
return false;
}
}
}
return true;
}
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 >> ans[i][j];
}
}
if(db())
{
puts("1");
return 0;
}
retarn();
if(db())
{
puts("1");
return 0;
}
retarn();
if(db())
{
puts("1");
return 0;
}
retarn();
if(db())
{
puts("1");
return 0;
}
retarn();
reverse();
if(db())
{
puts("4");
return 0;
}
reverse();
reverse();
retarn();
if(db())
{
puts("5");
return 0;
}
retarn();
if(db())
{
puts("5");
return 0;
}
retarn();
if(db())
{
puts("5");
return 0;
}
retarn();
puts("7");
return 0;
}