#include <stdio.h>
#include <string.h>
int n;
char new_a[11][11]={'\0'};
char a1[11][11]={'\0'};
char a2[11][11]={'\0'};
char a3[11][11]={'\0'};
char a4[11][11]={'\0'};
char a5[11][11]={'\0'};
int jugde(char w[11][11],char q[11][11])
{
int flag=1,i,j;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
if(w[i][j]!=q[i][j])
flag=0;
return flag;
}
int tran1(char a[11][11])
{
int i,j,flag=0;
for(j=0;j<n;j++)
{
for(i=0;i<n;i++)
{
a1[j][i]=a[n-1-i][j];
}
}
if(jugde(a1,new_a))
flag=1;
return flag;
}
int tran2(char a[11][11])
{
int i,j,flag=0;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
a2[i][j]=a[n-1-i][n-1-j];
}
if(jugde(a2,new_a))
flag=1;
return flag;
}
int tran3(char a[11][11])
{
int i,j,flag=0;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
a3[i][j]=a[j][n-1-i];
}
if(jugde(a3,new_a))
flag=1;
return flag;
}
int tran4(char a[11][11])
{
int i,j,flag=0;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
a4[i][j]=a[n-1-i][j];
}
}
if(jugde(a4,new_a))
flag=1;
return flag;
}
int tran5(char a[11][11])
{
int i,j,flag=0;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
a5[i][j]=a[i][n-1-j];
}
}
if(jugde(a5,new_a))
flag=1;
return flag;
}
int main()
{
scanf("%d",&n);
char a[11][11]={'\0'};
int i;
for(i=0;i<n;i++)
{
scanf("%s",a[i]);
}
for(i=0;i<n;i++)
{
scanf("%s",new_a[i]);
}
if(tran1(a))
printf("1");
else if(tran2(a))
printf("2");
else if(tran3(a))
printf("3");
else if(tran4(a)||tran5(a))
printf("4");
else if(tran1(a4)||tran2(a4)||tran3(a4)||tran1(a5)||tran2(a5)||tran3(a5))
printf("5");
else if(jugde(a,new_a))
printf("6");
else
printf("7");
return 0;
}