#include<bits/stdc++.h>
using namespace std;
int n;
char c1[19][19],c2[19][19],k[19][19],m[19][19];
bool A(){
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++)
m[j][n-i+1]=c1[i][j];
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(m[i][j]!=k[i][j])return false;
}
}
return true;
}
bool B(){
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++)
m[j][n-i+1]=c1[i][j];
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++)
m[j][n-i+1]=c1[i][j];
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(m[i][j]!=k[i][j])return false;
}
}
return true;
}
bool C(){
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++)
m[j][n-i+1]=c1[i][j];
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++)
m[j][n-i+1]=c1[i][j];
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++)
m[j][n-i+1]=c1[i][j];
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(m[i][j]!=k[i][j])return false;
}
}
return true;
}
bool D(){
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
m[i][n-j+1]=c1[i][j];
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(m[i][j]!=k[i][j])return false;
}
}
return true;
}
bool E(){
int t;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
m[i][n-j+1]=c1[i][j];
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++)
m[j][n-i+1]=c1[i][j];
}
t=0;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(m[i][j]!=k[i][j])t++;
}
}
if(t==n*n)return true;
t=0;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(m[i][j]!=k[i][j])t++;
}
}
if(t==n*n)return true;
t=0;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(m[i][j]!=k[i][j])t++;
}
}
if(t==n*n)return true;
return false;
}
bool F(){
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(c1[i][j]!=c2[i][j])return false;
}
}
return true;
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
cin>>c1[i][j];
k[i][j]=c1[i][j];
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
cin>>c2[i][j];
}
}
if(A())cout<<1;
else if(B())cout<<2;
else if(C())cout<<3;
else if(D())cout<<4;
else if(E())cout<<5;
else if(F())cout<<6;
else cout<<7;
return 0;
}
谢谢