#include<bits/stdc++.h>
using namespace std;
int n;
char a[12][12],b[12][12],A[12][12];
char c[12][12],d[12][12],e[12][12];//90,180,270
bool turn_1(){//90°
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
c[j][n-i+1]=a[i][j];
}
}
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
if(c[i][j]!=b[i][j])
return false;
return true;
}
bool turn_2(){//180
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
d[n-i+1][n-j+1]=a[i][j];
}
}
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
if(d[i][j]!=b[i][j])
return false;
return true;
}
bool turn_3(){//270
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
e[n-j+1][i]=a[i][j];
}
}
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
if(e[i][j]!=b[i][j])
return false;
return true;
}
bool ref(){//reflection,这一步可以修改a数组
for(int i=1;i<=n;i++)
for(int j=1;j<=n/2;j++)swap(a[i][j],a[i][n-j+1]);//反转
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
if(a[i][j]!=b[i][j])
return false;
return true;
}
bool zuhe(){//调用zuhe之前,已经调用了ref,所以不用再水平翻转
if(turn_1())return true;
if(turn_2())return true;
if(turn_3())return true;
return false;
}
bool flg=true;//记录方式6
int main(){
scanf("%d",&n);
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)scanf("%c",&a[i][j]);
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++){
scanf("%c",&b[i][j]);
if(b[i][j]!=a[i][j])flg=false;}
if(turn_1()){printf("1");return 0;}
if(turn_2()){printf("2");return 0;}
if(turn_3()){printf("3");return 0;}
if(ref()){printf("4");return 0;}
if(zuhe()){printf("5");return 0;}
if(flg){printf("6");return 0;}
printf("7");
}