#include<iostream>
#include<vector>
using namespace std;
vector<int> v;
int main(){
int M,N,L,num,maxn=0,dp[10010],hash[210];
scanf("%d%d",&N,&M);
for(int i=1;i<=M;i++){
scanf("%d",&num);
hash[num]=i;
}
scanf("%d",&L);
for(int i=0;i<L;i++){
scanf("%d",&num);
if(hash[num]>=1)
v.push_back(hash[num]);
}
for(int i=0;i<v.size();i++){
dp[i]=1;
for(int j=0;j<i;j++){
if(v[i]>=v[j])
dp[i]=max(dp[j]+1,dp[i]);
}
maxn=max(dp[i],maxn);
}
printf("%d\n",maxn);
}