#include<stdio.h>
#include<math.h>
int way1(char a[20][20],char b[20][20],int n);
int way2(char a[20][20],char b[20][20],int n);
int way3(char a[20][20],char b[20][20],int n);
int way4(char a[20][20],char b[20][20],int n);
int way5(char a[20][20],char b[20][20],int n);
int way6(char a[20][20],char b[20][20],int n);
int main(){
int n;
char a[20][20];
char b[20][20];
scanf("%d",&n);
fflush(stdin);
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
scanf("%c",&a[i][j]);
}fflush(stdin);
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
scanf("%c",&b[i][j]);
}fflush(stdin);
}
if(way1(a,b,n)){
printf("1");
return 0;
}
if(way2(a,b,n)){
printf("2");
return 0;
}
if(way3(a,b,n)){
printf("3");
return 0;
}
if(way4(a,b,n)){
printf("4");
return 0;
}
if(way5(a,b,n)){
printf("5");
return 0;
}
if(way6(a,b,n)){
printf("6");
return 0;
}
printf("7");
return 0;
}
int way1(char a[20][20],char b[20][20],int n){
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(a[i][j]!=b[j][n-i+1]){
return 0;
}
}
}
return 1;
}
int way2(char a[20][20],char b[20][20],int n){
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(a[i][j]!=b[n-i+1][n-j+1]){
return 0;
}
}
}
return 1;
}
int way3(char a[20][20],char b[20][20],int n){
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(a[i][j]!=b[n-j+1][i]){
return 0;
}
}
}
return 1;
}
int way4(char a[20][20],char b[20][20],int n){
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(a[i][j]!=b[i][n-j+1]){
return 0;
}
}
}
return 1;
}
int way5(char a[20][20],char b[20][20],int n){
char c[20][20];
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
c[i][j]=a[i][n-j+1] ;
}
}
return(way1(c,b,n)||way2(c,b,n)||way1(c,b,n));
}
int way6(char a[20][20],char b[20][20],int n){
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(a[i][j]!=b[i][j]){
return 0;
}
}
}
return 1;
}