#include <iostream>
using namespace std;
int main()
{
int n;
scanf("%d",&n);
char** before=(char**)malloc(sizeof(char*)*n);
char** after=(char**)malloc(sizeof(char*)*n);
for(int i=0;i<n;i++){
before[i]=(char*)malloc(sizeof(char)*n);
after[i]=(char*)malloc(sizeof(char)*n);
}
char ch;
for(int i=0;i<n;i++)
for(int j=0;j<n;){
scanf("%c",&ch);
if(ch!='\n'){
before[i][j]=ch;
j++;
}
}
for(int i=0;i<n;i++)
for(int j=0;j<n;){
scanf("%c",&ch);
if(ch!='\n'){
after[i][j]=ch;
j++;
}
}
bool judge=1;
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
if(before[i][j]!=after[j][n-1-i]){
judge=0;
break;
}
}
if(!judge)
break;
}
if(judge){
printf("1");
return 0;
}
judge=1;
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
if(before[i][j]!=after[n-1-i][n-1-j]){
judge=0;
break;
}
}
if(!judge)
break;
}
if(judge){
printf("2");
return 0;
}
judge=1;
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
if(before[i][j]!=after[n-1-j][i]){
judge=0;
break;
}
}
if(!judge)
break;
}
if(judge){
printf("3");
return 0;
}
judge=1;
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
if(before[i][j]!=after[i][n-1-j]){
judge=0;
break;
}
}
if(!judge)
break;
}
if(judge){
printf("4");
return 0;
}
judge=1;
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
if(before[i][j]!=after[n-1-j][n-1-i]){
judge=0;
break;
}
}
if(!judge)
break;
}
if(judge){
printf("5");
return 0;
}
judge=1;
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
if(before[i][j]!=after[n-1-i][j]){
judge=0;
break;
}
}
if(!judge)
break;
}
if(judge){
printf("5");
return 0;
}
judge=1;
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
if(before[i][j]!=after[j][i]){
judge=0;
break;
}
}
if(!judge)
break;
}
if(judge){
printf("5");
return 0;
}
judge=1;
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
if(before[i][j]!=after[i][j]){
judge=0;
break;
}
}
if(!judge)
break;
}
if(judge){
printf("6");
return 0;
}
printf("7");
return 0;
}