#include <algorithm>
#include <iostream>
#include <vector>
using namespace std;
void showmatrix(vector<vector<int>>& matrix);
void rotate(vector<vector<int>>& matrix);
bool islike(vector<vector<int>>& matrix,vector<vector<int>>& goal);
int main() {
int num = 0;
int i,j;
cin >> num;
vector<vector<int>> matrix(num, vector<int>(num, 0));
vector<vector<int>> mgoal(num, vector<int>(num, 0));
for ( i = 0; i < num; i++) {
for ( j = 0; j < num; j++)
cin >> matrix[i][j];
}
for ( i = 0; i < num; i++) {
for ( j = 0; j < num; j++)
cin >> mgoal[i][j];
}
if(islike(matrix,mgoal)) {
cout<<"0"<<endl;
return 0;
}
i=1;
while(i<4){
rotate(matrix);
if(islike(matrix,mgoal)) {
cout<<90*i<<endl;
break;
}
i++;
}
if(i==4) cout<<"-1";
}
bool islike(vector<vector<int>>& matrix,vector<vector<int>>& goal){
int len= matrix.size();
for(int i =0;i<len;i++){
if(matrix[i]!=goal[i])
return false;
}
return true;
}
void rotate(vector<vector<int>>& matrix) {
int len = matrix.size();
for (int i = 0; i < len; i++) {
for (int j = i + 1; j < len; j++)
swap(matrix[i][j], matrix[j][i]);
}
vector<vector<int>>::iterator it;
for(it = matrix.begin();it != matrix.end();it++)
reverse((*it).begin(), (*it).end());
}
void showmatrix(vector<vector<int>>& matrix) {
int len = matrix.size();
int j = 0, i = 0;
for (i = 0; i < len; i++) {
for (j = 0; j < len; j++)
cout << matrix[i][j] << " ";
cout << endl;
}
}