(* Uždavinys:   Obuoliai (obuoliai-vyr)
 * Olimpiada:   LIO'21
 * Etapas:      miesto (rajono)
 * Grupė:       vyresniųjų
 *
 * Autorius:    Vytautas Gruslys
 *
 * Nuskaitę bet kurio obuolio koordinates peržiūrime
 * visas obelis ir patikriname, ar yra bent viena obelis,
 * nuo kurios obuolys nutolęs mažiau nei 3 metrus.
 * Tokius obuolius suskaičiuojame.
 *
 * Atstumas nuo obuolio (u, v) iki obels (x, y) lygus
 * ((u-x)^2 + (v-y)^2)^(1/2). Tačiau jei naudosime šią
 * išraišką, susidursime su paklaidomis, kurios yra
 * nepageidaujamos. Galime lyginti (u-x)^2 + (v-y)^2 ir 9.
 * Kita vertus, dėl ypatingos uždavinio struktūros (tai
 * yra visi obuoliai ir obelys išsidėstę ant taškų su
 * sveikomis koordinatėmis ir mus domina mažesnis nei 3
 * atstumas) užtenka lyginti max{|u-x|, |v-y|} ir 3.
 *
 *)

const
    pavI = 'obuoliai.in';
    pavO = 'obuoliai.out';
    daug = 10;

var
    bylaI, bylaO : text;
    x, y : array[1..daug] of integer;
    n, m, i, j, ox, oy, v, a : integer;

begin
    assign(bylaI, pavI);
    reset(bylaI);

    readln(bylaI, n);
    for i := 1 to n do readln(bylaI, x[i], y[i]);

    readln(bylaI, m);
    a := 0;
    for i := 1 to m do
    begin
        readln(bylaI, ox, oy);
        v := 1;
        for j := 1 to n do
            if (abs(x[j] - ox) < 3) and (abs(y[j] - oy) < 3) then
            begin
                a := a + v;
                v := 0;
            end;
    end;
    close(bylaI);

    assign(bylaO, pavO);
    rewrite(bylaO);
    writeln(bylaO, a);
    close(bylaO);
end.

