Problem:
Search I

You are given a sequence of n integers S and a sequence of different q integers T. Write a program which outputs C, the number of integers in T which are also in the set S.

Input

In the first line n is given. In the second line, n integers are given. In the third line q is given. Then, in the fourth line, q integers are given.

Output

Print C in a line.

Constraints

n ≤ 10000

q ≤ 500

0 ≤ an element in S ≤ 109

0 ≤ an element in T ≤ 109

Sample Input 1

5
1 2 3 4 5
3
3 4 1

Sample Output 1

3

Sample Input 2

3
3 1 2
1
5

Sample Output 2

0

Sample Input 3

5
1 1 2 2 3
2
1 2

Sample Output 3

2

Notes

Solution in C (judge verdict: Time Limit Exceeded)

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(void)
{
	char str[20000]				= {};
	int S[10000]				= {};
	int T[500]					= {};
	int n						= 0;
	int q						= 0;
	int i						= 0;
	int j						= i;
	int num						= 0;
	fgets( str, 256, stdin );
	n = atoi(str);
	fgets( str, 20000, stdin );
	while ( num < n ) {
		j = i;
		for ( i = 0; str[i] != ' ' || str[i] != '\r'; i++ ) {
		}
		str[i] = '\0';
		S[num] = atoi(&str[j]);
		num++;
		i++;
	}
	
	fgets( str, 256, stdin );
	q = atoi(str);
	fgets( str, 20000, stdin );
	i = 0;
	num = 0;
	while ( num < q ) {
		j = i;
		for ( i = 0; str[i] != ' ' || str[i] != '\r'; i++ ) {
		}
		str[i] = '\0';
		T[num] = atoi(&str[j]);
		num++;
		i++;
	}
	
	num = 0;
	
	for ( i = 0; i < n; i++ ) {
		for ( j = 0; j < q; j++ ) {
			if ( S[i] == T[j] ) {
				num++;
			}
		}
	}
	
	printf("%d\n", num);
	
	return 0;
}