#include <bits/stdc++.h>
#include <bits/extc++.h>
using namespace std;
typedef long long ll;
int n, res=7;
char stt[15][15], tgt[15][15];
void solution_check(int cas){
char temp[15][15], temp2[15][15];
if(cas == 1){
for(register int i=1; i<=n; ++i)
for(register int j=1; j<=n; ++j)
temp[j][n-i+1] = stt[i][j];
bool flag = true;
for(register int i=1; i<=n; ++i)
for(register int j=1; j<=n; ++j)
if(temp[i][j] != tgt[i][j])
flag = false;
if(flag)
res = min(res, 1);
}else if(cas == 2){
for(register int i=1; i<=n; ++i)
for(register int j=1; j<=n; ++j)
temp[n-i+1][n-j+1] = stt[i][j];
bool flag = true;
for(register int i=1; i<=n; ++i)
for(register int j=1; j<=n; ++j)
if(temp[i][j] != tgt[i][j])
flag = false;
if(flag)
res = min(res, 2);
}else if(cas == 3){
for(register int i=1; i<=n; ++i)
for(register int j=1; j<=n; ++j)
temp[n-j+1][i] = stt[i][j];
bool flag = true;
for(register int i=1; i<=n; ++i)
for(register int j=1; j<=n; ++j)
if(temp[i][j] != tgt[i][j])
flag = false;
if(flag)
res = min(res, 2);
}else if(cas == 4){
for(register int i=1; i<=n; ++i)
for(register int j=1; j<=n; ++j)
temp[i][n-j+1] = stt[i][j];
bool flag = true;
for(register int i=1; i<=n; ++i)
for(register int j=1; j<=n; ++j)
if(temp[i][j] != tgt[i][j])
flag = false;
if(flag)
res = min(res, 2);
}else if(cas == 5){
bool flag;
for(register int i=1; i<=n; ++i)
for(register int j=1; j<=n; ++j)
temp[i][n-j+1] = stt[i][j];
for(register int i=1; i<=n; ++i)
for(register int j=1; j<=n; ++j)
temp2[j][n-i+1] = temp[i][j];
flag = true;
for(register int i=1; i<=n; ++i)
for(register int j=1; j<=n; ++j)
if(temp2[i][j] != tgt[i][j])
flag = false;
if(flag)
res = min(res, 5);
for(register int i=1; i<=n; ++i)
for(register int j=1; j<=n; ++j)
temp2[n-i+1][n-j+1] = temp[i][j];
flag = true;
for(register int i=1; i<=n; ++i)
for(register int j=1; j<=n; ++j)
if(temp2[i][j] != tgt[i][j])
flag = false;
if(flag)
res = min(res, 5);
for(register int i=1; i<=n; ++i)
for(register int j=1; j<=n; ++j)
temp2[n-j+1][i] = temp[i][j];
flag = true;
for(register int i=1; i<=n; ++i)
for(register int j=1; j<=n; ++j)
if(temp2[i][j] != tgt[i][j])
flag = false;
if(flag)
res = min(res, 5);
}else if(cas == 6){
bool flag = true;
for(register int i=1; i<=n; ++i)
for(register int j=1; j<=n; ++j)
if(stt[i][j] != tgt[i][j])
flag = false;
if(flag)
res = min(res, 6);
}
return;
}
int main(void){
cin >> n;
for(register int i=1; i<=n; ++i)
for(register int j=1; j<=n; ++j)
cin >> stt[i][j];
for(register int i=1; i<=n; ++i)
for(register int j=1; j<=n; ++j)
cin >> tgt[i][j];
for(int i=1; i<=6; ++i)
solution_check(i);
cout << res << "\n";
return 0;
}