

import java.util.Arrays;
import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int n = scan.nextInt();
		int[] a1 = new int[n];
		for (int i = 0; i < n; ++i)
			a1[i] = scan.nextInt();
		//System.out.println(Arrays.toString(a1));
		//System.out.println(Arrays.binarySearch(a1, 1));
		int q = scan.nextInt();
		int t;
		int sum = 0;
		for (int i = 0; i < q; ++i) {
			t = scan.nextInt();
			if (Arrays.binarySearch(a1, t) >= 0) {//如果找不到则返回应该插入位置的负数值（逻辑索引，实际-1）
				//System.out.println("t:" + t);
				//System.out.println(Arrays.binarySearch(a1, t));
				sum++;
			}
		}
		System.out.println(sum);
		
//		int[] a2 = new int[10];
//		for (int i = 0; i < a2.length; i++) {
//			a2[a2.length - 1 - i] = i;
//		}
//		System.out.println(Arrays.binarySearch(a2, 4));
	}
}
 import java.util.Arrays; Arrays java.util import java.util.Scanner; Scanner java.util public class Main {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int n = scan.nextInt();
		int[] a1 = new int[n];
		for (int i = 0; i < n; ++i)
			a1[i] = scan.nextInt();
		//System.out.println(Arrays.toString(a1));
		//System.out.println(Arrays.binarySearch(a1, 1));
		int q = scan.nextInt();
		int t;
		int sum = 0;
		for (int i = 0; i < q; ++i) {
			t = scan.nextInt();
			if (Arrays.binarySearch(a1, t) >= 0) {//如果找不到则返回应该插入位置的负数值（逻辑索引，实际-1）
				//System.out.println("t:" + t);
				//System.out.println(Arrays.binarySearch(a1, t));
				sum++;
			}
		}
		System.out.println(sum);
		
//		int[] a2 = new int[10];
//		for (int i = 0; i < a2.length; i++) {
//			a2[a2.length - 1 - i] = i;
//		}
//		System.out.println(Arrays.binarySearch(a2, 4));
	}
} Main public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int n = scan.nextInt();
		int[] a1 = new int[n];
		for (int i = 0; i < n; ++i)
			a1[i] = scan.nextInt();
		//System.out.println(Arrays.toString(a1));
		//System.out.println(Arrays.binarySearch(a1, 1));
		int q = scan.nextInt();
		int t;
		int sum = 0;
		for (int i = 0; i < q; ++i) {
			t = scan.nextInt();
			if (Arrays.binarySearch(a1, t) >= 0) {//如果找不到则返回应该插入位置的负数值（逻辑索引，实际-1）
				//System.out.println("t:" + t);
				//System.out.println(Arrays.binarySearch(a1, t));
				sum++;
			}
		}
		System.out.println(sum);
		
//		int[] a2 = new int[10];
//		for (int i = 0; i < a2.length; i++) {
//			a2[a2.length - 1 - i] = i;
//		}
//		System.out.println(Arrays.binarySearch(a2, 4));
	} main {
		Scanner scan = new Scanner(System.in);
		int n = scan.nextInt();
		int[] a1 = new int[n];
		for (int i = 0; i < n; ++i)
			a1[i] = scan.nextInt();
		//System.out.println(Arrays.toString(a1));
		//System.out.println(Arrays.binarySearch(a1, 1));
		int q = scan.nextInt();
		int t;
		int sum = 0;
		for (int i = 0; i < q; ++i) {
			t = scan.nextInt();
			if (Arrays.binarySearch(a1, t) >= 0) {//如果找不到则返回应该插入位置的负数值（逻辑索引，实际-1）
				//System.out.println("t:" + t);
				//System.out.println(Arrays.binarySearch(a1, t));
				sum++;
			}
		}
		System.out.println(sum);
		
//		int[] a2 = new int[10];
//		for (int i = 0; i < a2.length; i++) {
//			a2[a2.length - 1 - i] = i;
//		}
//		System.out.println(Arrays.binarySearch(a2, 4));
	} Scanner scan = new Scanner(System.in); scan new Scanner(System.in) int n = scan.nextInt(); n scan.nextInt() scan.nextInt scan int[] a1 = new int[n]; a1 new int[n] n for (int i = 0; i < n; ++i)
			a1[i] = scan.nextInt(); int i = 0; int i = 0; i 0 i < n i n ++i ++i i a1[i] = scan.nextInt(); a1[i] = scan.nextInt() a1[i] a1 i scan.nextInt() scan.nextInt scan int q = scan.nextInt(); q scan.nextInt() scan.nextInt scan int t; t int sum = 0; sum 0 for (int i = 0; i < q; ++i) {
			t = scan.nextInt();
			if (Arrays.binarySearch(a1, t) >= 0) {//如果找不到则返回应该插入位置的负数值（逻辑索引，实际-1）
				//System.out.println("t:" + t);
				//System.out.println(Arrays.binarySearch(a1, t));
				sum++;
			}
		} int i = 0; int i = 0; i 0 i < q i q ++i ++i i {
			t = scan.nextInt();
			if (Arrays.binarySearch(a1, t) >= 0) {//如果找不到则返回应该插入位置的负数值（逻辑索引，实际-1）
				//System.out.println("t:" + t);
				//System.out.println(Arrays.binarySearch(a1, t));
				sum++;
			}
		} {
			t = scan.nextInt();
			if (Arrays.binarySearch(a1, t) >= 0) {//如果找不到则返回应该插入位置的负数值（逻辑索引，实际-1）
				//System.out.println("t:" + t);
				//System.out.println(Arrays.binarySearch(a1, t));
				sum++;
			}
		} t = scan.nextInt() t scan.nextInt() scan.nextInt scan if (Arrays.binarySearch(a1, t) >= 0) {//如果找不到则返回应该插入位置的负数值（逻辑索引，实际-1）
				//System.out.println("t:" + t);
				//System.out.println(Arrays.binarySearch(a1, t));
				sum++;
			} Arrays.binarySearch(a1, t) >= 0 Arrays.binarySearch(a1, t) Arrays.binarySearch Arrays a1 t 0 {//如果找不到则返回应该插入位置的负数值（逻辑索引，实际-1）
				//System.out.println("t:" + t);
				//System.out.println(Arrays.binarySearch(a1, t));
				sum++;
			} sum++ sum System.out.println(sum) System.out.println System.out System System.out sum String[] args args public class Main {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int n = scan.nextInt();
		int[] a1 = new int[n];
		for (int i = 0; i < n; ++i)
			a1[i] = scan.nextInt();
		//System.out.println(Arrays.toString(a1));
		//System.out.println(Arrays.binarySearch(a1, 1));
		int q = scan.nextInt();
		int t;
		int sum = 0;
		for (int i = 0; i < q; ++i) {
			t = scan.nextInt();
			if (Arrays.binarySearch(a1, t) >= 0) {//如果找不到则返回应该插入位置的负数值（逻辑索引，实际-1）
				//System.out.println("t:" + t);
				//System.out.println(Arrays.binarySearch(a1, t));
				sum++;
			}
		}
		System.out.println(sum);
		
//		int[] a2 = new int[10];
//		for (int i = 0; i < a2.length; i++) {
//			a2[a2.length - 1 - i] = i;
//		}
//		System.out.println(Arrays.binarySearch(a2, 4));
	}
} public class Main {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int n = scan.nextInt();
		int[] a1 = new int[n];
		for (int i = 0; i < n; ++i)
			a1[i] = scan.nextInt();
		//System.out.println(Arrays.toString(a1));
		//System.out.println(Arrays.binarySearch(a1, 1));
		int q = scan.nextInt();
		int t;
		int sum = 0;
		for (int i = 0; i < q; ++i) {
			t = scan.nextInt();
			if (Arrays.binarySearch(a1, t) >= 0) {//如果找不到则返回应该插入位置的负数值（逻辑索引，实际-1）
				//System.out.println("t:" + t);
				//System.out.println(Arrays.binarySearch(a1, t));
				sum++;
			}
		}
		System.out.println(sum);
		
//		int[] a2 = new int[10];
//		for (int i = 0; i < a2.length; i++) {
//			a2[a2.length - 1 - i] = i;
//		}
//		System.out.println(Arrays.binarySearch(a2, 4));
	}
} Main


import java.util.Arrays;
import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int n = scan.nextInt();
		int[] a1 = new int[n];
		for (int i = 0; i < n; ++i)
			a1[i] = scan.nextInt();
		//System.out.println(Arrays.toString(a1));
		//System.out.println(Arrays.binarySearch(a1, 1));
		int q = scan.nextInt();
		int t;
		int sum = 0;
		for (int i = 0; i < q; ++i) {
			t = scan.nextInt();
			if (Arrays.binarySearch(a1, t) >= 0) {//如果找不到则返回应该插入位置的负数值（逻辑索引，实际-1）
				//System.out.println("t:" + t);
				//System.out.println(Arrays.binarySearch(a1, t));
				sum++;
			}
		}
		System.out.println(sum);
		
//		int[] a2 = new int[10];
//		for (int i = 0; i < a2.length; i++) {
//			a2[a2.length - 1 - i] = i;
//		}
//		System.out.println(Arrays.binarySearch(a2, 4));
	}
}

