#include<bits/stdc++.h>
using namespace std;
int n,m;
int l[400];
int jq[25][25];
int ti[25][25];
int idx[25];
int idxg[25];
int tim[25][400];
int maxn=-1;
int main(){
scanf("%d%d",&m,&n);
for(int i=1;i<=n*m;i++) scanf("%d",&l[i]);
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++) scanf("%d",&jq[i][j]);
}
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++) scanf("%d",&ti[i][j]);
}
for(int i=1;i<=n*m;i++){
idx[l[i]]++;
int q=jq[l[i]][idx[l[i]]],t=ti[l[i]][idx[l[i]]];
int s=0,j=idxg[l[i]];
while(s<=t){
j++;
if(tim[q][j]==0)s++;
else{
s=0;
}
}
for(int k=j-s+1;k<=j-1;k++) tim[q][k]=l[i];
idxg[l[i]]=j-1;
maxn=max(maxn,j);
}
printf("%d",maxn-1);
return 0;
}