#include<iostream>
using namespace std;
int main()
{
int n, pd=0, i2, j2, jg=1, pd1=0, pd2=0, pd3=0;
cin >> n;
char ZHQ[n][n], ZHH[n][n];
for(int i=1; i<=n; i++)
{
for(int j=1; j<=n; j++)
{
cin >> ZHQ[i][j];
}
}
for(int i=1; i<=n; i++)
{
for(int j=1; j<=n; j++)
{
cin >> ZHH[i][j];
}
}
i2 = 1;
j2 = 3;
for(int i1=1; i1<=n; i1++)
{
for(int j1=1; j1<=n; j1++)
{
if(ZHQ[i1][j1]!=ZHH[i2][j2]){jg=2;}
i2++;
}
j2--;
i2 = 1;
}
if(jg==1){cout << jg;return 0;}
i2 = 3;
j2 = 3;
for(int i1=1; i1<=n; i1++)
{
for(int j1=1; j1<=n; j1++)
{
if(ZHQ[i1][j1]!=ZHH[i2][j2]){jg=3;}
j2--;
}
i2--;
j2 = 3;
}
if(jg==2){cout << jg;return 0;}
i2 = 3;
j2 = 1;
for(int i1=1; i1<=n; i1++)
{
for(int j1=1; j1<=n; j1++)
{
if(ZHQ[i1][j1]!=ZHH[i2][j2]){jg=4;}
i2--;
}
j2++;
i2 = 3;
}
if(jg==3){cout << jg;return 0;}
i2 = 1;
j2 = 3;
for(int i1=1; i1<=n; i1++)
{
for(int j1=1; j1<=n; j1++)
{
if(ZHQ[i1][j1]!=ZHH[i2][j2]){jg=5;}
j2--;
}
i2++;
j2 = 3;
}
if(jg==4){cout << jg;return 0;}
i2 = 3;
j2 = 3;
for(int i1=1; i1<=n; i1++)
{
for(int j1=1; j1<=n; j1++)
{
if(ZHQ[i1][j1]!=ZHH[i2][j2]){pd1=1;}
i2--;
}
j2++;
i2 = 3;
}
i2 = 3;
j2 = 1;
for(int i1=1; i1<=n; i1++)
{
for(int j1=1; j1<=n; j1++)
{
if(ZHQ[i1][j1]!=ZHH[i2][j2]){pd2=1;}
j2++;
}
i2--;
j2 = 1;
}
i2 = 1;
j2 = 1;
for(int i1=1; i1<=n; i1++)
{
for(int j1=1; j1<=n; j1++)
{
if(ZHQ[i1][j1]!=ZHH[i2][j2]){pd3=1;}
i2++;
}
j2++;
i2 = 1;
}
if(pd1==1||pd2==1||pd3==1){jg=6;}
if(jg==5){cout << jg;return 0;}
for(int i=1; i<=n; i++)
{
for(int j=1; j<=n; j++)
{
if(ZHQ[i][j]!=ZHH[i][j]){jg=7;}
}
}
cout << jg;
return 0;
}