#include<bits/stdc++.h>
using namespace std;
char a[10][10],b[10][10],c[10][10];
int n;
bool pd(){
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
if(b[i][j]!=c[i][j]){
return 0;
}
}
}
return 1;
}
void cz1(){
for(int i=0;i<n;i++){
for(int j=0;j<1;j++){
b[j][n-i-1]=a[i][j];
}
}
}
void cz2(){
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
b[n-i-1][n-1-j]=a[i][j];
}
}
}
void cz3(){
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
b[i][j]=a[j][n-1-i];
}
}
}
void cz4(){
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
b[i][n-1-j]=a[i][j];
}
}
}
void cz5_1(){
char d[n][n];
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
d[i][n-1-j]=a[i][j];
}
}
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
b[j][n-1-i]=d[i][j];
}
}
}
void cz5_2(){
char d[n][n];
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
d[i][n-1-j]=a[i][j];
}
}
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
b[n-1-i][n-1-j]=d[i][j];
}
}
}
void cz5_3(){
char d[n][n];
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
d[i][n-1-j]=a[i][j];
}
}
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
b[i][j]=d[j][n-1-i];
}
}
}
void cz6(){
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
b[i][j]=a[i][j];
}
}
}
int main(){
cin>>n;
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
cin>>a[i][j];
}
}
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
cin>>c[i][j];
}
}
cz1();
if(pd()){
cout<<1;
return 0;
}
cz2();
if(pd()){
cout<<2;
return 0;
}
cz3();
if(pd()){
cout<<3;
return 0;
}
cz4();
if(pd()){
cout<<4;
return 0;
}
cz5_1();
if(pd()){
cout<<5;
return 0;
}
cz5_2();
if(pd()){
cout<<5;
return 0;
}
cz5_3();
if(pd()){
cout<<5;
return 0;
}
cz6();
if(pd()){
cout<<6;
return 0;
}
cout<<7;
return 0;
}