from collections import * from itertools import * from functools import cache, partial from pprint import pprint import sys from typing import Any, Final try: from icecream import ic except ImportError: # Graceful fallback if IceCream isn't installed. ic = lambda *a: None if not a else (a[0] if len(a) == 1 else a) # noqa debug = partial(print, file=sys.stderr) dpprint = partial(pprint, stream=sys.stderr) sys.setrecursionlimit(10**6) MOD = 998244353 N, K = list(map(int, input().split())) H_ = list(map(int, input().split())) H = [(h, i) for i, h in enumerate(H_)] H.sort() # ic(H) XY = [] for _ in range(N): x, y = map(int, input().split()) XY.append((x, y)) destroied = [False] * N for s, t in groupby(H, key=lambda x: x[0]): T = set([x for _, x in t]) # ic(s, T) for i in T: xi, yi = XY[i] for j, (x, y) in enumerate(XY): if j in T: continue if destroied[j]: continue xj, yj = x, y if (xi - xj) ** 2 + (yi - yj) ** 2 <= K**2: destroied[i] = True break # ic(destroied) ans = N - sum(destroied) print(ans)