Problem:
Search II

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

Elements in S is sorted in ascending order

n ≤ 100000

q ≤ 50000

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
1 2 3
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 PHP (judge verdict: WA: Presentation Error)

<?php

    fscanf(STDIN, "%d", $n);
    $S = explode(" ", trim(fgets(STDIN)));
    fscanf(STDIN, "%d", $q);
    $T = explode(" ", trim(fgets(STDIN)));

    $ans = 0;
    for ($i = 0; $i < $q; $i++) {
        if (search($n, $S, $T[$i])) {
            $ans++;
            // echo $T[$i] . "found\n";
        } else {
            // echo $T[$i] . "not found\n";
        }
    }
    echo $ans;

    function search($n, $S, $a) {
        $ret = null;

        $l = 0;
        $r = $n-1;
        if ($S[$l] == $a || $S[$r] == $a) {
            return true;
        }

        while(is_null($ret)) {
            $m = ceil(($l + $r) / 2);
            if ($l == $m || $r == $m) {
                return false;
            }

            // echo "l:{$l} r:{$r} m:{$m}\n";

            if ($S[$m] == $a) {
                return true;
            } elseif ($S[$m] > $a) {
                $r = $m;
            } else {
                $l = $m;
            }
        }
    }