import java.util.*;

class Main{
	
	int n, q;int count=0;int j, L, R, mid;
	int[] S ;int[] T;
	Scanner sc = new Scanner(System.in);
	
	void input(){
		n = sc.nextInt();
		S = new int[n];
		for(int i=0; i<n; i++)S[i] = sc.nextInt();
		q = sc.nextInt();
		T = new int[q];
		for(int j=0; j<q; j++)T[j] = sc.nextInt();
		search();
		output();
	}
	void search(){
		for(j=0; j<q; j++){
			L=0; R=n;
			midd();
		}
	}
	void midd(){
		while(L!=R){
			mid=(L+R)/2;
			if(S[mid]==T[j]){
				count++;
				L=R;
			}else{
				if(S[mid]>T[j]){
					R=mid;
				}else{
					L=mid+1;
				}
			}
		}
	}

	void output(){
		System.out.println(count);
	}
	
	public static void main(String[] args){
		new Main().input();
	}
} import java.util.*; util.* java class Main{
	
	int n, q;int count=0;int j, L, R, mid;
	int[] S ;int[] T;
	Scanner sc = new Scanner(System.in);
	
	void input(){
		n = sc.nextInt();
		S = new int[n];
		for(int i=0; i<n; i++)S[i] = sc.nextInt();
		q = sc.nextInt();
		T = new int[q];
		for(int j=0; j<q; j++)T[j] = sc.nextInt();
		search();
		output();
	}
	void search(){
		for(j=0; j<q; j++){
			L=0; R=n;
			midd();
		}
	}
	void midd(){
		while(L!=R){
			mid=(L+R)/2;
			if(S[mid]==T[j]){
				count++;
				L=R;
			}else{
				if(S[mid]>T[j]){
					R=mid;
				}else{
					L=mid+1;
				}
			}
		}
	}

	void output(){
		System.out.println(count);
	}
	
	public static void main(String[] args){
		new Main().input();
	}
} Main int n n q; q int count=0; count 0 int j j L L R R mid; mid int[] S ; S int[] T; T Scanner sc = new Scanner(System.in); sc new Scanner(System.in) void input(){
		n = sc.nextInt();
		S = new int[n];
		for(int i=0; i<n; i++)S[i] = sc.nextInt();
		q = sc.nextInt();
		T = new int[q];
		for(int j=0; j<q; j++)T[j] = sc.nextInt();
		search();
		output();
	} input {
		n = sc.nextInt();
		S = new int[n];
		for(int i=0; i<n; i++)S[i] = sc.nextInt();
		q = sc.nextInt();
		T = new int[q];
		for(int j=0; j<q; j++)T[j] = sc.nextInt();
		search();
		output();
	} n = sc.nextInt() n sc.nextInt() sc.nextInt sc S = new int[n] S new int[n] n for(int i=0; i<n; i++)S[i] = sc.nextInt(); int i=0; int i=0; i 0 i<n i n i++ i++ i S[i] = sc.nextInt(); S[i] = sc.nextInt() S[i] S i sc.nextInt() sc.nextInt sc q = sc.nextInt() q sc.nextInt() sc.nextInt sc T = new int[q] T new int[q] q for(int j=0; j<q; j++)T[j] = sc.nextInt(); int j=0; int j=0; j 0 j<q j q j++ j++ j T[j] = sc.nextInt(); T[j] = sc.nextInt() T[j] T j sc.nextInt() sc.nextInt sc search() search output() output void search(){
		for(j=0; j<q; j++){
			L=0; R=n;
			midd();
		}
	} search {
		for(j=0; j<q; j++){
			L=0; R=n;
			midd();
		}
	} for(j=0; j<q; j++){
			L=0; R=n;
			midd();
		} j=0; j=0 j 0 j<q j q j++ j++ j {
			L=0; R=n;
			midd();
		} {
			L=0; R=n;
			midd();
		} L=0 L 0 R=n R n midd() midd void midd(){
		while(L!=R){
			mid=(L+R)/2;
			if(S[mid]==T[j]){
				count++;
				L=R;
			}else{
				if(S[mid]>T[j]){
					R=mid;
				}else{
					L=mid+1;
				}
			}
		}
	} midd {
		while(L!=R){
			mid=(L+R)/2;
			if(S[mid]==T[j]){
				count++;
				L=R;
			}else{
				if(S[mid]>T[j]){
					R=mid;
				}else{
					L=mid+1;
				}
			}
		}
	} while(L!=R){
			mid=(L+R)/2;
			if(S[mid]==T[j]){
				count++;
				L=R;
			}else{
				if(S[mid]>T[j]){
					R=mid;
				}else{
					L=mid+1;
				}
			}
		} L!=R L R {
			mid=(L+R)/2;
			if(S[mid]==T[j]){
				count++;
				L=R;
			}else{
				if(S[mid]>T[j]){
					R=mid;
				}else{
					L=mid+1;
				}
			}
		} mid=(L+R)/2 mid (L+R)/2 (L+R) L R 2 if(S[mid]==T[j]){
				count++;
				L=R;
			}else{
				if(S[mid]>T[j]){
					R=mid;
				}else{
					L=mid+1;
				}
			} S[mid]==T[j] S[mid] S mid T[j] T j {
				count++;
				L=R;
			} count++ count L=R L R {
				if(S[mid]>T[j]){
					R=mid;
				}else{
					L=mid+1;
				}
			} if(S[mid]>T[j]){
					R=mid;
				}else{
					L=mid+1;
				} S[mid]>T[j] S[mid] S mid T[j] T j {
					R=mid;
				} R=mid R mid {
					L=mid+1;
				} L=mid+1 L mid+1 mid 1 void output(){
		System.out.println(count);
	} output {
		System.out.println(count);
	} System.out.println(count) System.out.println System.out System System.out count public static void main(String[] args){
		new Main().input();
	} main {
		new Main().input();
	} new Main().input() new Main().input new Main() String[] args args
import java.util.*;

class Main{
	
	int n, q;int count=0;int j, L, R, mid;
	int[] S ;int[] T;
	Scanner sc = new Scanner(System.in);
	
	void input(){
		n = sc.nextInt();
		S = new int[n];
		for(int i=0; i<n; i++)S[i] = sc.nextInt();
		q = sc.nextInt();
		T = new int[q];
		for(int j=0; j<q; j++)T[j] = sc.nextInt();
		search();
		output();
	}
	void search(){
		for(j=0; j<q; j++){
			L=0; R=n;
			midd();
		}
	}
	void midd(){
		while(L!=R){
			mid=(L+R)/2;
			if(S[mid]==T[j]){
				count++;
				L=R;
			}else{
				if(S[mid]>T[j]){
					R=mid;
				}else{
					L=mid+1;
				}
			}
		}
	}

	void output(){
		System.out.println(count);
	}
	
	public static void main(String[] args){
		new Main().input();
	}
}