from collections import deque N, K = map(int, input().split()) H = list(map(int, input().split())) XY = [list(map(int, input().split())) for _ in range(N)] K **= 2 def distance(x1, y1, x2, y2): return (x2-x1)**2 + (y2-y1)**2 H2 = sorted([(i, H[i]) for i in range(N)], key=lambda x:x[1], reverse=True) ans = 0 visited = [False]*N for idx, h in H2: if visited[idx]: continue ans += 1 visited[idx] = True que = deque() que.append(idx) while que: n = que.popleft() X1, Y1 = XY[n] for i in range(N): X2, Y2 = XY[i] if not visited[i] and H[n] > H[i] and distance(X1, Y1, X2, Y2) <= K: visited[i] = True que.append(i) print(ans)