#include<bits/stdc++.h>
using namespace std;
int n;
vector<string> v1, v2;
vector<string> turn(int op, vector<string> v){
switch(op){
case 1:{
vector<string> v1(v.size(), string(v.size(), ' '));
for(size_t i = 0; i < v.size(); ++i){
for(size_t j = 0; j < v[i].size(); ++j)
v1[j][v.size() - i - 1lu] = v[i][j];
}return v1;
}case 2:{
for(string &s: v)
reverse(s.begin(), s.end());
reverse(v.begin(), v.end());
return v;
}case 3:{
vector<string> v1(v.size(), string(v.size(), ' '));
for(size_t i = 0; i < v.size(); ++i){
for(size_t j = 0; j < v[i].size(); ++j)
v1[v.size() - j - 1lu][i] = v[i][j];
}return v1;
}case 4:{
for(string &s: v)
reverse(s.begin(), s.end());
return v;
}case 5:{
return turn(1, turn(4, v));
}case 6:{
return turn(2, turn(4, v));
}case 7:{
return turn(3, turn(4, v));
}case 8:{
return v;
}
}return v2;
}signed main(){
ios::sync_with_stdio(0);
cin.tie(0), cout.tie(0);
cin >> n;
for(int i = 1; i <= n; ++i){
string s;
cin >> s;
v1.push_back(s);
}for(int i = 1; i <= n; ++i){
string s;
cin >> s;
v2.push_back(s);
}for(int i = 1; i <= 9; ++i){
if(turn(i, v1) == v2){
if(i <= 5){
cout << i;
return 0;
}else if(i == 6){
cout << 5;
return 0;
}else{
cout << i - 2;
return 0;
}
}
}return 0;
}