#include<bits/stdc++.h>
using namespace std;
char a[20][20],b[20][20];
int c;
int check(){
for(int i=1;i<=c;i++){
for(int j=1;j<=c;j++){
if(a[i][j]!=b[i][j]) return 0;
}
}
return 1;
}
int t90(){
for(int i=1;i<=c;i++){
for(int j=1;j<=c;j++){
if(a[i][j]!=b[j][c-i+1]) return 0;
}
}
return 1;
}
int t180(){
for(int i=1;i<=c;i++){
for(int j=1;j<=c;j++){
if(a[i][j]!=b[c-i+1][c-j+1]) return 0;
}
}
return 1;
}
int t270(){
for(int i=1;i<=c;i++){
for(int j=1;j<=c;j++){
if(a[i][j]!=b[c-j+1][i]) return 0;
}
}
return 1;
}
int f180(){
for(int i=1;i<=c;i++){
for(int j=1;j<=c/2;j++){
if(a[i][j]!=b[i][c-j+1]) return 0;
}
}
return 1;
}
int f_t(){
for(int i=1;i<=c;i++){
for(int j=1;j<=c/2;j++){
swap(a[i][j],a[i][c-j+1]);
}
}
if(t90()||t180()||t270()) return 1;
for(int i=1;i<=c;i++){
for(int j=1;j<=c/2;j++){
swap(a[i][j],a[i][c-j+1]);
}
}
return 0;
}
int main(){
cin>>c;
for(int i=1;i<=c;i++){
for(int j=1;j<=c;j++){
cin>>a[i][j];
}
}
for(int i=1;i<=c;i++){
for(int j=1;j<=c;j++){
cin>>b[i][j];
}
}
if(t90()){
cout<<1;
}else
if(t180()){
cout<<2;
}else
if(t270()){
cout<<3;
}else
if(f180()){
cout<<4;
}else
if(f_t()){
cout<<5;
}else
if(check()){
cout<<6;
}else{
cout<<7;
}
return 0;
}