import java.io.BufferedReader;
//import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
//import java.util.Arrays;

public class Main {

	public static void main(String[] args) throws NumberFormatException, IOException {
		//System.setIn(new FileInputStream("./ALDS1_4_B-in1.txt"));
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int n = Integer.parseInt(br.readLine());
		//int[] s = Arrays.stream(br.readLine().split(" ")).mapToInt(Integer::parseInt).toArray();
		String[] l = br.readLine().split(" ");
		int[] s = new int[n];
		for(int i = 0; i < n; ++i) {
			s[i] = Integer.parseInt(l[i]);
		}
		
		int q = Integer.parseInt(br.readLine());
		//int[] t = Arrays.stream(br.readLine().split(" ")).mapToInt(Integer::parseInt).toArray();
		l = br.readLine().split(" ");
		int[] t = new int[q];
		for(int i = 0; i < q; ++i) {
			t[i] = Integer.parseInt(l[i]);
		}
		
		//long start = System.nanoTime();
		int cnt = 0;
		for(int i = 0; i < q; ++i) {
			if(binarySearch(t[i], s)){
				cnt += 1;
			}
		}
		System.out.println(cnt);
		//System.out.println("Time:" + (System.nanoTime() - start) / 1000000f + " ms");

	}
	public static boolean binarySearch(int t, int[] s){
		int l = 0;
		int r = s.length;
		while(l <= r) {
			int mid = (l + r) / 2;
			if(s[mid] == t) {
				return true;
			}else if(s[mid] < t){
				l = mid + 1;
			}else{
				r = mid - 1;
			}
		}
		return false;
	}

} import java.io.BufferedReader; BufferedReader java.io import java.io.IOException; IOException java.io import java.io.InputStreamReader; InputStreamReader java.io public class Main {

	public static void main(String[] args) throws NumberFormatException, IOException {
		//System.setIn(new FileInputStream("./ALDS1_4_B-in1.txt"));
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int n = Integer.parseInt(br.readLine());
		//int[] s = Arrays.stream(br.readLine().split(" ")).mapToInt(Integer::parseInt).toArray();
		String[] l = br.readLine().split(" ");
		int[] s = new int[n];
		for(int i = 0; i < n; ++i) {
			s[i] = Integer.parseInt(l[i]);
		}
		
		int q = Integer.parseInt(br.readLine());
		//int[] t = Arrays.stream(br.readLine().split(" ")).mapToInt(Integer::parseInt).toArray();
		l = br.readLine().split(" ");
		int[] t = new int[q];
		for(int i = 0; i < q; ++i) {
			t[i] = Integer.parseInt(l[i]);
		}
		
		//long start = System.nanoTime();
		int cnt = 0;
		for(int i = 0; i < q; ++i) {
			if(binarySearch(t[i], s)){
				cnt += 1;
			}
		}
		System.out.println(cnt);
		//System.out.println("Time:" + (System.nanoTime() - start) / 1000000f + " ms");

	}
	public static boolean binarySearch(int t, int[] s){
		int l = 0;
		int r = s.length;
		while(l <= r) {
			int mid = (l + r) / 2;
			if(s[mid] == t) {
				return true;
			}else if(s[mid] < t){
				l = mid + 1;
			}else{
				r = mid - 1;
			}
		}
		return false;
	}

} Main public static void main(String[] args) throws NumberFormatException, IOException {
		//System.setIn(new FileInputStream("./ALDS1_4_B-in1.txt"));
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int n = Integer.parseInt(br.readLine());
		//int[] s = Arrays.stream(br.readLine().split(" ")).mapToInt(Integer::parseInt).toArray();
		String[] l = br.readLine().split(" ");
		int[] s = new int[n];
		for(int i = 0; i < n; ++i) {
			s[i] = Integer.parseInt(l[i]);
		}
		
		int q = Integer.parseInt(br.readLine());
		//int[] t = Arrays.stream(br.readLine().split(" ")).mapToInt(Integer::parseInt).toArray();
		l = br.readLine().split(" ");
		int[] t = new int[q];
		for(int i = 0; i < q; ++i) {
			t[i] = Integer.parseInt(l[i]);
		}
		
		//long start = System.nanoTime();
		int cnt = 0;
		for(int i = 0; i < q; ++i) {
			if(binarySearch(t[i], s)){
				cnt += 1;
			}
		}
		System.out.println(cnt);
		//System.out.println("Time:" + (System.nanoTime() - start) / 1000000f + " ms");

	} main {
		//System.setIn(new FileInputStream("./ALDS1_4_B-in1.txt"));
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int n = Integer.parseInt(br.readLine());
		//int[] s = Arrays.stream(br.readLine().split(" ")).mapToInt(Integer::parseInt).toArray();
		String[] l = br.readLine().split(" ");
		int[] s = new int[n];
		for(int i = 0; i < n; ++i) {
			s[i] = Integer.parseInt(l[i]);
		}
		
		int q = Integer.parseInt(br.readLine());
		//int[] t = Arrays.stream(br.readLine().split(" ")).mapToInt(Integer::parseInt).toArray();
		l = br.readLine().split(" ");
		int[] t = new int[q];
		for(int i = 0; i < q; ++i) {
			t[i] = Integer.parseInt(l[i]);
		}
		
		//long start = System.nanoTime();
		int cnt = 0;
		for(int i = 0; i < q; ++i) {
			if(binarySearch(t[i], s)){
				cnt += 1;
			}
		}
		System.out.println(cnt);
		//System.out.println("Time:" + (System.nanoTime() - start) / 1000000f + " ms");

	} BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); br new BufferedReader(new InputStreamReader(System.in)) int n = Integer.parseInt(br.readLine()); n Integer.parseInt(br.readLine()) Integer.parseInt Integer br.readLine() br.readLine br String[] l = br.readLine().split(" "); l br.readLine().split(" ") br.readLine().split br.readLine() br.readLine br " " int[] s = new int[n]; s new int[n] n for(int i = 0; i < n; ++i) {
			s[i] = Integer.parseInt(l[i]);
		} int i = 0; int i = 0; i 0 i < n i n ++i ++i i {
			s[i] = Integer.parseInt(l[i]);
		} {
			s[i] = Integer.parseInt(l[i]);
		} s[i] = Integer.parseInt(l[i]) s[i] s i Integer.parseInt(l[i]) Integer.parseInt Integer l[i] l i int q = Integer.parseInt(br.readLine()); q Integer.parseInt(br.readLine()) Integer.parseInt Integer br.readLine() br.readLine br l = br.readLine().split(" ") l br.readLine().split(" ") br.readLine().split br.readLine() br.readLine br " " int[] t = new int[q]; t new int[q] q for(int i = 0; i < q; ++i) {
			t[i] = Integer.parseInt(l[i]);
		} int i = 0; int i = 0; i 0 i < q i q ++i ++i i {
			t[i] = Integer.parseInt(l[i]);
		} {
			t[i] = Integer.parseInt(l[i]);
		} t[i] = Integer.parseInt(l[i]) t[i] t i Integer.parseInt(l[i]) Integer.parseInt Integer l[i] l i int cnt = 0; cnt 0 for(int i = 0; i < q; ++i) {
			if(binarySearch(t[i], s)){
				cnt += 1;
			}
		} int i = 0; int i = 0; i 0 i < q i q ++i ++i i {
			if(binarySearch(t[i], s)){
				cnt += 1;
			}
		} {
			if(binarySearch(t[i], s)){
				cnt += 1;
			}
		} if(binarySearch(t[i], s)){
				cnt += 1;
			} binarySearch(t[i], s) binarySearch t[i] t i s {
				cnt += 1;
			} cnt += 1 cnt 1 System.out.println(cnt) System.out.println System.out System System.out cnt String[] args args public static boolean binarySearch(int t, int[] s){
		int l = 0;
		int r = s.length;
		while(l <= r) {
			int mid = (l + r) / 2;
			if(s[mid] == t) {
				return true;
			}else if(s[mid] < t){
				l = mid + 1;
			}else{
				r = mid - 1;
			}
		}
		return false;
	} binarySearch {
		int l = 0;
		int r = s.length;
		while(l <= r) {
			int mid = (l + r) / 2;
			if(s[mid] == t) {
				return true;
			}else if(s[mid] < t){
				l = mid + 1;
			}else{
				r = mid - 1;
			}
		}
		return false;
	} int l = 0; l 0 int r = s.length; r s.length s s.length while(l <= r) {
			int mid = (l + r) / 2;
			if(s[mid] == t) {
				return true;
			}else if(s[mid] < t){
				l = mid + 1;
			}else{
				r = mid - 1;
			}
		} l <= r l r {
			int mid = (l + r) / 2;
			if(s[mid] == t) {
				return true;
			}else if(s[mid] < t){
				l = mid + 1;
			}else{
				r = mid - 1;
			}
		} int mid = (l + r) / 2; mid (l + r) / 2 (l + r) l r 2 if(s[mid] == t) {
				return true;
			}else if(s[mid] < t){
				l = mid + 1;
			}else{
				r = mid - 1;
			} s[mid] == t s[mid] s mid t {
				return true;
			} return true; true if(s[mid] < t){
				l = mid + 1;
			}else{
				r = mid - 1;
			} s[mid] < t s[mid] s mid t {
				l = mid + 1;
			} l = mid + 1 l mid + 1 mid 1 {
				r = mid - 1;
			} r = mid - 1 r mid - 1 mid 1 return false; false int t t int[] s s public class Main {

	public static void main(String[] args) throws NumberFormatException, IOException {
		//System.setIn(new FileInputStream("./ALDS1_4_B-in1.txt"));
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int n = Integer.parseInt(br.readLine());
		//int[] s = Arrays.stream(br.readLine().split(" ")).mapToInt(Integer::parseInt).toArray();
		String[] l = br.readLine().split(" ");
		int[] s = new int[n];
		for(int i = 0; i < n; ++i) {
			s[i] = Integer.parseInt(l[i]);
		}
		
		int q = Integer.parseInt(br.readLine());
		//int[] t = Arrays.stream(br.readLine().split(" ")).mapToInt(Integer::parseInt).toArray();
		l = br.readLine().split(" ");
		int[] t = new int[q];
		for(int i = 0; i < q; ++i) {
			t[i] = Integer.parseInt(l[i]);
		}
		
		//long start = System.nanoTime();
		int cnt = 0;
		for(int i = 0; i < q; ++i) {
			if(binarySearch(t[i], s)){
				cnt += 1;
			}
		}
		System.out.println(cnt);
		//System.out.println("Time:" + (System.nanoTime() - start) / 1000000f + " ms");

	}
	public static boolean binarySearch(int t, int[] s){
		int l = 0;
		int r = s.length;
		while(l <= r) {
			int mid = (l + r) / 2;
			if(s[mid] == t) {
				return true;
			}else if(s[mid] < t){
				l = mid + 1;
			}else{
				r = mid - 1;
			}
		}
		return false;
	}

} public class Main {

	public static void main(String[] args) throws NumberFormatException, IOException {
		//System.setIn(new FileInputStream("./ALDS1_4_B-in1.txt"));
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int n = Integer.parseInt(br.readLine());
		//int[] s = Arrays.stream(br.readLine().split(" ")).mapToInt(Integer::parseInt).toArray();
		String[] l = br.readLine().split(" ");
		int[] s = new int[n];
		for(int i = 0; i < n; ++i) {
			s[i] = Integer.parseInt(l[i]);
		}
		
		int q = Integer.parseInt(br.readLine());
		//int[] t = Arrays.stream(br.readLine().split(" ")).mapToInt(Integer::parseInt).toArray();
		l = br.readLine().split(" ");
		int[] t = new int[q];
		for(int i = 0; i < q; ++i) {
			t[i] = Integer.parseInt(l[i]);
		}
		
		//long start = System.nanoTime();
		int cnt = 0;
		for(int i = 0; i < q; ++i) {
			if(binarySearch(t[i], s)){
				cnt += 1;
			}
		}
		System.out.println(cnt);
		//System.out.println("Time:" + (System.nanoTime() - start) / 1000000f + " ms");

	}
	public static boolean binarySearch(int t, int[] s){
		int l = 0;
		int r = s.length;
		while(l <= r) {
			int mid = (l + r) / 2;
			if(s[mid] == t) {
				return true;
			}else if(s[mid] < t){
				l = mid + 1;
			}else{
				r = mid - 1;
			}
		}
		return false;
	}

} Main
import java.io.BufferedReader;
//import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
//import java.util.Arrays;

public class Main {

	public static void main(String[] args) throws NumberFormatException, IOException {
		//System.setIn(new FileInputStream("./ALDS1_4_B-in1.txt"));
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int n = Integer.parseInt(br.readLine());
		//int[] s = Arrays.stream(br.readLine().split(" ")).mapToInt(Integer::parseInt).toArray();
		String[] l = br.readLine().split(" ");
		int[] s = new int[n];
		for(int i = 0; i < n; ++i) {
			s[i] = Integer.parseInt(l[i]);
		}
		
		int q = Integer.parseInt(br.readLine());
		//int[] t = Arrays.stream(br.readLine().split(" ")).mapToInt(Integer::parseInt).toArray();
		l = br.readLine().split(" ");
		int[] t = new int[q];
		for(int i = 0; i < q; ++i) {
			t[i] = Integer.parseInt(l[i]);
		}
		
		//long start = System.nanoTime();
		int cnt = 0;
		for(int i = 0; i < q; ++i) {
			if(binarySearch(t[i], s)){
				cnt += 1;
			}
		}
		System.out.println(cnt);
		//System.out.println("Time:" + (System.nanoTime() - start) / 1000000f + " ms");

	}
	public static boolean binarySearch(int t, int[] s){
		int l = 0;
		int r = s.length;
		while(l <= r) {
			int mid = (l + r) / 2;
			if(s[mid] == t) {
				return true;
			}else if(s[mid] < t){
				l = mid + 1;
			}else{
				r = mid - 1;
			}
		}
		return false;
	}

}