N,K=(int(x) for x in input().split()) H=list(map(int, input().split())) zahyou=[] for i in range(N): x,y=(int(x) for x in input().split()) zahyou.append([x,y]) mem=[] for i, j in zip(H, zahyou): mem.append([i,j[0],j[1]]) mem=sorted(mem, key=lambda x: x[0])[::-1] leave=[True]*N for i in range(N-1,-1,-1): for j in range(i+1,N): if leave[j] == True and mem[i][0] > mem[j][0] and ((mem[i][1] - mem[j][1])**2 + (mem[i][2] - mem[j][2])**2)**(1/2) <= K: leave[j] = False ans=0 for i in leave: if i == True: ans += 1 print(ans)