#include<bits/stdc++.h>
using namespace std;
const int N=7;
int n,m,ans=1e9;
int a[N][N],b[N][N],h[N],w[N],aa[N][N];
bool check(){
for(int i=1; i<=n; i++){
for(int j=1; j<=m; j++){
aa[i][j]=a[h[i]][w[j]];
if(aa[i][j]^b[i][j]) return 0;
}
}
return 1;
}
int calc(){
int sum=0;
for(int i=1; i<=n; i++){
for(int j=i+1; j<=n; j++){
if(h[i]>h[j]) sum++;
}
}
for(int i=1; i<=m; i++){
for(int j=i+1; j<=m; j++){
if(w[i]>w[j]) sum++;
}
}
return sum;
}
int main(){
scanf("%d%d",&n,&m);
for(int i=1; i<=n; i++){
for(int j=1; j<=m; j++) scanf("%d",&a[i][j]);
}
for(int i=1; i<=n; i++){
for(int j=1; j<=m; j++) scanf("%d",&b[i][j]);
}
for(int i=1; i<=n; i++) h[i]=i;
for(int i=1; i<=m; i++) w[i]=i;
if(check()) ans=min(ans,calc());
while(next_permutation(h+1,h+1+n)){
while(next_permutation(w+1,w+1+m)){
if(check()) ans=min(ans,calc());
}
}
if(ans!=1e9) printf("%d\n",ans);
else puts("-1");
return 0;
}