#include <iostream>
using namespace std;
char arr[100][100],brr[100][100],srr[100][100];
int n;
void v1()
{
char crr[100][100];
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
crr[i][j]=srr[i][j];
}
}
for(int i=n;i>=1;i--)
{
for(int j=n;j>=1;j--)
{
arr[i][j]=crr[n-j+1][i];
}
}
return;
}
void v2()
{
char crr[100][100];
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
crr[i][j]=srr[i][j];
}
}
for(int i=n;i>=1;i--)
{
for(int j=n;j>=1;j--)
{
arr[i][j]=crr[i][n-j+1];
}
}
return;
}
void v3()
{
char crr[100][100];
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
crr[i][j]=srr[i][j];
}
}
for(int i=n;i>=1;i--)
{
for(int j=n;j>=1;j--)
{
arr[i][j]=crr[n-i+1][j];
}
}
return;
}
void v4()
{
char crr[100][100];
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
crr[i][j]=srr[i][j];
}
}
for(int i=n;i>=1;i--)
{
for(int j=n;j>=1;j--)
{
arr[i][j]=crr[i][n-j+1];
}
}
return;
}
void rel()
{
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
arr[i][j]=srr[i][j];
}
}
return;
}
bool ist()
{
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
if(arr[i][j]!=brr[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>>srr[i][j];
}
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
cin>>brr[i][j];
}
}
for(int i=1;i<=n;i++)
{
v1();
if(ist())
{
cout<<1<<endl;
return 0;
}
else
{
rel();
v2();
if(ist())
{
cout<<2<<endl;
return 0;
}
else
{
rel();
v3();
if(ist())
{
cout<<3<<endl;
return 0;
}
else
{
rel();
v4();
if(ist())
{
cout<<4<<endl;
return 0;
}
else
{
rel();
v4();
for(int k=1;k<=3;k++)
{
switch(k)
{
case 1:v1();continue;
case 2:v2();continue;
case 3:v3();continue;
}
}
if(ist())
{
cout<<5<<endl;
return 0;
}
else
{
rel();
if(ist())
{
cout<<6<<endl;
return 0;
}
else
{
cout<<7<<endl;
return 0;
}
}
}
}
}
}
}
}
![]()