#include<bits/stdc++.h>
using namespace std;
const int N = 15;
char a[N][N],b[N][N],c[N][N],d[N][N];
int n;
bool qd(){
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(c[i][j]!=b[i][j]){
return 0;
}
}
}
return 1;
}
void t1(){
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
c[n-j+1][i]=a[i][j];
}
}
}
void t2(){
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
c[n-i+1][n-j+1]=a[i][j];
}
}
}
void t3(){
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
c[j][n-i+1]=a[i][j];
}
}
}
void t4(){
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
c[i][n-j+1]=a[i][j];
}
}
}
void t5t1(){
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
d[i][n-j+1]=a[i][j];
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
c[n-j+1][i]=d[i][j];
}
}
}
void t5t2(){
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
d[i][n-j+1]=a[i][j];
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
c[n-i+1][n-j+1]=d[i][j];
}
}
}
void t5t3(){
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
d[i][n-j+1]=a[i][j];
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
c[j][n-i+1]=d[i][j];
}
}
}
void t6(){
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
c[i][j]=a[i][j];
}
}
}
int main(){
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];
}
}
t1();
if(qd()){
cout<<1;
return 0;
}
t2();
if(qd()){
cout<<2;
return 0;
}
t3();
if(qd()){
cout<<3;
return 0;
}
t4();
if(qd()){
cout<<4;
return 0;
}
t5t1();
if(qd()){
cout<<5;
return 0;
}
t5t2();
if(qd()){
cout<<5;
return 0;
}
t5t3();
if(qd()){
cout<<5;
return 0;
}
t6();
if(qd()){
cout<<6;
return 0;
}
cout<<7;
return 0;
}