#include<fstream>
#include <algorithm>
#include<iostream>
using namespace std;
int n,m;
ifstream fi("DEMPT.inp");
ofstream fo("DEMPT.out");
void quick(int a[],int l,int r)
{
	int key=a[(l+r)/2];
	int i=l;
	int j=r;
	while(i<=j)
	{
		while(a[i]<key) i++;
		while(a[j]>key) j--;
		if(i<=j)
		{
			swap(a[i],a[j]);
			i++;
			j--;
		}
		if(l<j) quick(a,l,j);
		if(r>i) quick(a,i,r);
	}
}
int find(int a[],int l,int r,int b)
{
	int mid=int((l+r)/2);
	int k=0;
	while(l<=r)
	{
		if(b<a[mid]) r=mid-1;
		if(b>a[mid]) l=mid+1;
		if(b==a[mid])
		{
			return mid;
			k=1;
		 } 
		mid=int((l+r)/2);
	}
	if(k==0)
	{
		return 0;
	}
}
int main()
{
	int u=0;
	int p=0;
	int d=0;
	fi>>n;
	int a[n];
	for(int i=0;i<n;i++)
	{
		fi>>a[i];
	}
	fi>>m;
	quick(a,0,n-1);
	//sort(a,a+n);
	int b[m];
	for(int j=0;j<m;j++)
	{
		fi>>b[j];
	}
	quick(b,0,m-1);
	//sort(b,b+m);
	for(int i=p;i<n;i++)
	{
		//cout<<a[i]<<" ";
		//for(int j=p;j<m;j++)
		//{
			//if(a[i]==b[j])
			//{
				//d++;
				//p=j+1;
				
			//}
			//if(a[i]<b[j])
			//{
			//break;
			//}
		//}
		p=find(b,u,m,a[i]);
		if(p==0)
		{
			p=i+1;
			u=0;
		}
		else
		{
			u=p;
			d++;
		}
	}
	fo<<d;
	fi.close();
	fo.close();
	
}
