#include <iostream>
using namespace std;
int fav[210], ori[10010], res[210][10010];
int getmax(int a, int b)
{
if(a > b)
{
return a;
}
else
{
return b;
}
}
int main()
{
int n;
scanf("%d", &n);
int m;
scanf("%d", &m);
int i;
for(i = 1; i <= m; i++)
{
scanf("%d", &fav[i]);
}
int l;
scanf("%d", &l);
for(i = 1; i <= l; i++)
{
scanf("%d", &ori[i]);
}
int j, max;
for(i = 1; i <= m; i++)
{
for(j = 1; j <= l; j++)
{
max = getmax(res[i - 1][j], res[i][j - 1]);
max = getmax(max, res[i - 1][j - 1]);
if(fav[i] == ori[j])
{
max++;
}
res[i][j] = max;
}
}
printf("%d\n", res[m][l]);
system("pause");
return 0;
}