#include <stdio.h>
#include<string.h>
struct uu
{  int a[1000];
   int n;
};
void dele(int a[],int n)
{  int  k,j,i;
   uu t;
   for(k=i=1;i<n;i++)	
   {  for(j=0;j<k;j++)		          
      {  if(a[j]==a[i])  
	     break;			//思路：如果没有重复,a[i]的值递给a[k],如果a[i]与前面相比有重复，则用break，使a[i]的值不给a[k]; 
	  }		
	  if(j==k)   
	  a[k++]=a[i];
   }	
}
int binarysearch(int a[],int key,int n)
{  int left=0,right=n,mid;
   while(left<right)
   {  mid=(left+right)/2;
      if(a[mid]==key)  return mid;
      else if(key<a[mid])  right=mid;
      else left=mid;
   }
   return -2;
}
int main()
{  int a[10000],b[10000];
   int i,n,t,k,m;
   m=0;
   scanf("%d",&n);
   for(i=0;i<n;i++)
     scanf("%d",&a[i]);
   dele(a,n);
   scanf("%d",&t);
   for(i=0;i<t;i++)
     scanf("%d",&b[i]);
   for(i=0;i<t;i++)
     if(binarysearch(a,b[i],n)!=-2)  m++;
   printf("%d\n",m);
}

