import java.util.Scanner;

public class Main {
	
	public int search(int[] s, int value) {
		int left = 0;
		int right = s.length - 1;
		while( left <= right) {
			int med = (left+right) / 2;
			
			if(value == s[med]) {
				return 1;
			}
			if(value < s[med]) {
				right = med - 1;
			}
			else {
				left = med + 1;
			}
		}
		return 0;
	}
	
	
//	public boolean prime(int x) {
//		
//		if(x < 2) {
//			return false;
//		}
//		if(x == 2) {
//			return true;
//		}
//		for(int i = 2; i <= Math.sqrt(x); i++) {
//			if(x % i == 0) {
//				return false;
//			}
//		}
//		return true;
//	}

	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		Main program = new Main();
		int results = 0;
		//System.out.println("enter");
		
		int ssize = in.nextInt();
		int[] s = new int[ssize];
		for(int i= 0; i < ssize; i++) {
			s[i] = in.nextInt();
		}
		
		int tsize = in.nextInt();
		int[] t = new int[tsize];
		for(int i = 0; i < tsize; i++) {
			t[i] = in.nextInt();
		}
		
		for(int i =0; i < tsize; i++) {
			if((program.search(s, t[i])) == 1){
				results++;
			}
		}
		
		System.out.println(results);
		
//		for(int i = 0; i < size; i++) {
//			int value = in.nextInt();
//			if(program.prime(value) == true) {
//				results++;
//			}
//		}
//		System.out.println(results);
	}
}
 import java.util.Scanner; Scanner java.util public class Main {
	
	public int search(int[] s, int value) {
		int left = 0;
		int right = s.length - 1;
		while( left <= right) {
			int med = (left+right) / 2;
			
			if(value == s[med]) {
				return 1;
			}
			if(value < s[med]) {
				right = med - 1;
			}
			else {
				left = med + 1;
			}
		}
		return 0;
	}
	
	
//	public boolean prime(int x) {
//		
//		if(x < 2) {
//			return false;
//		}
//		if(x == 2) {
//			return true;
//		}
//		for(int i = 2; i <= Math.sqrt(x); i++) {
//			if(x % i == 0) {
//				return false;
//			}
//		}
//		return true;
//	}

	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		Main program = new Main();
		int results = 0;
		//System.out.println("enter");
		
		int ssize = in.nextInt();
		int[] s = new int[ssize];
		for(int i= 0; i < ssize; i++) {
			s[i] = in.nextInt();
		}
		
		int tsize = in.nextInt();
		int[] t = new int[tsize];
		for(int i = 0; i < tsize; i++) {
			t[i] = in.nextInt();
		}
		
		for(int i =0; i < tsize; i++) {
			if((program.search(s, t[i])) == 1){
				results++;
			}
		}
		
		System.out.println(results);
		
//		for(int i = 0; i < size; i++) {
//			int value = in.nextInt();
//			if(program.prime(value) == true) {
//				results++;
//			}
//		}
//		System.out.println(results);
	}
} Main public int search(int[] s, int value) {
		int left = 0;
		int right = s.length - 1;
		while( left <= right) {
			int med = (left+right) / 2;
			
			if(value == s[med]) {
				return 1;
			}
			if(value < s[med]) {
				right = med - 1;
			}
			else {
				left = med + 1;
			}
		}
		return 0;
	} search {
		int left = 0;
		int right = s.length - 1;
		while( left <= right) {
			int med = (left+right) / 2;
			
			if(value == s[med]) {
				return 1;
			}
			if(value < s[med]) {
				right = med - 1;
			}
			else {
				left = med + 1;
			}
		}
		return 0;
	} int left = 0; left 0 int right = s.length - 1; right s.length - 1 s.length s s.length 1 while( left <= right) {
			int med = (left+right) / 2;
			
			if(value == s[med]) {
				return 1;
			}
			if(value < s[med]) {
				right = med - 1;
			}
			else {
				left = med + 1;
			}
		} left <= right left right {
			int med = (left+right) / 2;
			
			if(value == s[med]) {
				return 1;
			}
			if(value < s[med]) {
				right = med - 1;
			}
			else {
				left = med + 1;
			}
		} int med = (left+right) / 2; med (left+right) / 2 (left+right) left right 2 if(value == s[med]) {
				return 1;
			} value == s[med] value s[med] s med {
				return 1;
			} return 1; 1 if(value < s[med]) {
				right = med - 1;
			}
			else {
				left = med + 1;
			} value < s[med] value s[med] s med {
				right = med - 1;
			} right = med - 1 right med - 1 med 1 {
				left = med + 1;
			} left = med + 1 left med + 1 med 1 return 0; 0 int[] s s int value value public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		Main program = new Main();
		int results = 0;
		//System.out.println("enter");
		
		int ssize = in.nextInt();
		int[] s = new int[ssize];
		for(int i= 0; i < ssize; i++) {
			s[i] = in.nextInt();
		}
		
		int tsize = in.nextInt();
		int[] t = new int[tsize];
		for(int i = 0; i < tsize; i++) {
			t[i] = in.nextInt();
		}
		
		for(int i =0; i < tsize; i++) {
			if((program.search(s, t[i])) == 1){
				results++;
			}
		}
		
		System.out.println(results);
		
//		for(int i = 0; i < size; i++) {
//			int value = in.nextInt();
//			if(program.prime(value) == true) {
//				results++;
//			}
//		}
//		System.out.println(results);
	} main {
		Scanner in = new Scanner(System.in);
		Main program = new Main();
		int results = 0;
		//System.out.println("enter");
		
		int ssize = in.nextInt();
		int[] s = new int[ssize];
		for(int i= 0; i < ssize; i++) {
			s[i] = in.nextInt();
		}
		
		int tsize = in.nextInt();
		int[] t = new int[tsize];
		for(int i = 0; i < tsize; i++) {
			t[i] = in.nextInt();
		}
		
		for(int i =0; i < tsize; i++) {
			if((program.search(s, t[i])) == 1){
				results++;
			}
		}
		
		System.out.println(results);
		
//		for(int i = 0; i < size; i++) {
//			int value = in.nextInt();
//			if(program.prime(value) == true) {
//				results++;
//			}
//		}
//		System.out.println(results);
	} Scanner in = new Scanner(System.in); in new Scanner(System.in) Main program = new Main(); program new Main() int results = 0; results 0 int ssize = in.nextInt(); ssize in.nextInt() in.nextInt in int[] s = new int[ssize]; s new int[ssize] ssize for(int i= 0; i < ssize; i++) {
			s[i] = in.nextInt();
		} int i= 0; int i= 0; i 0 i < ssize i ssize i++ i++ i {
			s[i] = in.nextInt();
		} {
			s[i] = in.nextInt();
		} s[i] = in.nextInt() s[i] s i in.nextInt() in.nextInt in int tsize = in.nextInt(); tsize in.nextInt() in.nextInt in int[] t = new int[tsize]; t new int[tsize] tsize for(int i = 0; i < tsize; i++) {
			t[i] = in.nextInt();
		} int i = 0; int i = 0; i 0 i < tsize i tsize i++ i++ i {
			t[i] = in.nextInt();
		} {
			t[i] = in.nextInt();
		} t[i] = in.nextInt() t[i] t i in.nextInt() in.nextInt in for(int i =0; i < tsize; i++) {
			if((program.search(s, t[i])) == 1){
				results++;
			}
		} int i =0; int i =0; i 0 i < tsize i tsize i++ i++ i {
			if((program.search(s, t[i])) == 1){
				results++;
			}
		} {
			if((program.search(s, t[i])) == 1){
				results++;
			}
		} if((program.search(s, t[i])) == 1){
				results++;
			} (program.search(s, t[i])) == 1 (program.search(s, t[i])) program.search program s t[i] t i 1 {
				results++;
			} results++ results System.out.println(results) System.out.println System.out System System.out results String[] args args public class Main {
	
	public int search(int[] s, int value) {
		int left = 0;
		int right = s.length - 1;
		while( left <= right) {
			int med = (left+right) / 2;
			
			if(value == s[med]) {
				return 1;
			}
			if(value < s[med]) {
				right = med - 1;
			}
			else {
				left = med + 1;
			}
		}
		return 0;
	}
	
	
//	public boolean prime(int x) {
//		
//		if(x < 2) {
//			return false;
//		}
//		if(x == 2) {
//			return true;
//		}
//		for(int i = 2; i <= Math.sqrt(x); i++) {
//			if(x % i == 0) {
//				return false;
//			}
//		}
//		return true;
//	}

	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		Main program = new Main();
		int results = 0;
		//System.out.println("enter");
		
		int ssize = in.nextInt();
		int[] s = new int[ssize];
		for(int i= 0; i < ssize; i++) {
			s[i] = in.nextInt();
		}
		
		int tsize = in.nextInt();
		int[] t = new int[tsize];
		for(int i = 0; i < tsize; i++) {
			t[i] = in.nextInt();
		}
		
		for(int i =0; i < tsize; i++) {
			if((program.search(s, t[i])) == 1){
				results++;
			}
		}
		
		System.out.println(results);
		
//		for(int i = 0; i < size; i++) {
//			int value = in.nextInt();
//			if(program.prime(value) == true) {
//				results++;
//			}
//		}
//		System.out.println(results);
	}
} public class Main {
	
	public int search(int[] s, int value) {
		int left = 0;
		int right = s.length - 1;
		while( left <= right) {
			int med = (left+right) / 2;
			
			if(value == s[med]) {
				return 1;
			}
			if(value < s[med]) {
				right = med - 1;
			}
			else {
				left = med + 1;
			}
		}
		return 0;
	}
	
	
//	public boolean prime(int x) {
//		
//		if(x < 2) {
//			return false;
//		}
//		if(x == 2) {
//			return true;
//		}
//		for(int i = 2; i <= Math.sqrt(x); i++) {
//			if(x % i == 0) {
//				return false;
//			}
//		}
//		return true;
//	}

	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		Main program = new Main();
		int results = 0;
		//System.out.println("enter");
		
		int ssize = in.nextInt();
		int[] s = new int[ssize];
		for(int i= 0; i < ssize; i++) {
			s[i] = in.nextInt();
		}
		
		int tsize = in.nextInt();
		int[] t = new int[tsize];
		for(int i = 0; i < tsize; i++) {
			t[i] = in.nextInt();
		}
		
		for(int i =0; i < tsize; i++) {
			if((program.search(s, t[i])) == 1){
				results++;
			}
		}
		
		System.out.println(results);
		
//		for(int i = 0; i < size; i++) {
//			int value = in.nextInt();
//			if(program.prime(value) == true) {
//				results++;
//			}
//		}
//		System.out.println(results);
	}
} Main
import java.util.Scanner;

public class Main {
	
	public int search(int[] s, int value) {
		int left = 0;
		int right = s.length - 1;
		while( left <= right) {
			int med = (left+right) / 2;
			
			if(value == s[med]) {
				return 1;
			}
			if(value < s[med]) {
				right = med - 1;
			}
			else {
				left = med + 1;
			}
		}
		return 0;
	}
	
	
//	public boolean prime(int x) {
//		
//		if(x < 2) {
//			return false;
//		}
//		if(x == 2) {
//			return true;
//		}
//		for(int i = 2; i <= Math.sqrt(x); i++) {
//			if(x % i == 0) {
//				return false;
//			}
//		}
//		return true;
//	}

	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		Main program = new Main();
		int results = 0;
		//System.out.println("enter");
		
		int ssize = in.nextInt();
		int[] s = new int[ssize];
		for(int i= 0; i < ssize; i++) {
			s[i] = in.nextInt();
		}
		
		int tsize = in.nextInt();
		int[] t = new int[tsize];
		for(int i = 0; i < tsize; i++) {
			t[i] = in.nextInt();
		}
		
		for(int i =0; i < tsize; i++) {
			if((program.search(s, t[i])) == 1){
				results++;
			}
		}
		
		System.out.println(results);
		
//		for(int i = 0; i < size; i++) {
//			int value = in.nextInt();
//			if(program.prime(value) == true) {
//				results++;
//			}
//		}
//		System.out.println(results);
	}
}

