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 JAVA (judge verdict: Wrong Answer)

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Arrays;

class Main {
    public static void main(String[] args) throws Exception {
        BufferedReader r = new BufferedReader(new InputStreamReader(System.in));

        int n = Integer.parseInt(r.readLine());

        String[] strArray = r.readLine().split(" ");
        int[] arr = new int[n];
        for (int i = 0; i < n; i++) {
            arr[i] = Integer.parseInt(strArray[i]);
        }
        Arrays.sort(arr);

        int q = Integer.parseInt(r.readLine());
        String[] strArray2 = r.readLine().split(" ");
        int [] matchArray = new int[n];
        for (int i = 0; i < q; i++) {
            matchArray[i] = Integer.parseInt(strArray2[i]);
        }

        int count = 0;
        for (int searchNum : matchArray) {
            if (binarySearch(arr, searchNum)) {
                count++;
            }
        }

        System.out.println(count);
    }

    private static boolean binarySearch(int[] arr, int searchNum) {
        int half = arr.length / 2;
        if (arr[half] == searchNum) {
            return true;
        } else if (arr.length <= 1) {
            return false;
        } else if (arr[half] > searchNum) {
            int[] left = Arrays.copyOfRange(arr, 0, half - 1);
            return binarySearch(left, searchNum);
        } else {
            int[] right = Arrays.copyOfRange(arr, half, arr.length);
            return binarySearch(right, searchNum);
        }
    }
}