#include<bits/stdc++.h>
using namespace std;
bool qk1(char x[][],char y[][],int z)
{
for(int i=z;i>=1;i--)//h,l
for(int j=1;j<=z;j++)//l,h
if(x[i][j]!=y[j][i])
return false;
return true;
}
bool qk2(char x[][],char y[][],int z)
{
for(int i=1;i<=z;i++)
for(int j=1;j<=z;j++)
if(y[x-i+1][x-j+1]!=x[i][j])
return false;
return true;
}
bool qk3(char x[][],char y[][],int z)
{
for(int i=1;i<=z;i++)//h,l
for(int j=z;j>=1;j--)//l,h
if(x[i][j]!=y[j][i])
return false;
return true;
}
bool qk4(char x[][],char y[][],int z)
{
for(int i=1;i<=z;i++)
for(int j=1;j<=z;j++)
if(x[i][z-j+1]!=y[i][j])
return false;
return true;
}
bool qk5(char x[][],char y[][],int z)
{
if((qk4(x,y,z)&&qk1(x,y,z)||qk4(x,y,z)&&qk2(x,y,z)||qk4(x,y,z)&&qk3(x,y,z))==false)
return false;
return true;
}
bool qk6(char x[][],char y[][],int z)
{
for(int i=1;i<=z;i++)
for(int j=1;j<=z;j++)
if(x[i][j]!=y[i][j])
return false;
return true;
}
int qk(char x[][],char y[][],int z)
{
if(qk1) return 1;
else if(qk2) return 2;
else if(qk3) return 3;
else if(qk4) return 4;
else if(qk5) return 5;
else if(qk6) return 6;
else return 7;
}
int main()
{
int n;
char a[15][15],b[15][15];
cin>>n;
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
cin>>a[i][j];
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
cin>>b[i][j];
cout<<qk(a,b,n);
return 0;
}
求助