#include<iostream>
using namespace std;
bool ori[20][20],aim[20][20],w1[20][20],w2[20][20],w3[20][20],w4[20][20],w5_1[20][20],w5_2[20][20],w5_3[20][20],w6[20][20];
int main(){
char in;
int n;
cin>>n;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
cin>>in;
ori[i][j]=in=='@'?true:false;
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
cin>>in;
aim[i][j]=in=='@'?true:false;
}
}
//正片开始
for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)w1[j][n-i+1]=ori[i][j];
for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)w2[n-i+1][n-j+1]=ori[i][j];
for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)w3[n-j+1][i]=ori[i][j];
for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)w4[i][n-j+1]=ori[i][j];
for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)w5_1[n-j+1][n-i+1]=ori[i][j];
for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)w5_2[n-i+1][j]=ori[i][j];
for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)w5_3[j][i]=ori[i][j];
for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)w6[i][j]=ori[i][j];
//以下标准结局
int flag=7;
bool f=true;
for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)if(w6[i][j]!=aim[i][j])f=false;
if(f)flag=6;
f=true;
for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)if(w5_3[i][j]!=aim[i][j])f=false;
if(f)flag=5;
f=true;
for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)if(w5_2[i][j]!=aim[i][j])f=false;
if(f)flag=5;
f=true;
for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)if(w5_1[i][j]!=aim[i][j])f=false;
if(f)flag=5;
f=true;
for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)if(w4[i][j]!=aim[i][j])f=false;
if(f)flag=4;
f=true;
for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)if(w3[i][j]!=aim[i][j])f=false;
if(f)flag=3;
f=true;
for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)if(w2[i][j]!=aim[i][j])f=false;
if(f)flag=2;
f=true;
for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)if(w1[i][j]!=aim[i][j])f=false;
if(f)flag=1;
cout<<flag;
return 0;
}
P.S. 希望这个#000有人看到吧