#include //#include //using namespace atcoder; //using mint = modint998244353; using namespace std; struct cww{cww(){ios::sync_with_stdio(false);cin.tie(0);}}star; using ll= long long; using ull=unsigned long long; using ldo =long double; templatebool chmax(T &a, const T &b) { if (abool chmin(T &a, const T &b) { if (bll sum1(T &a){ll ans = 0;for(ll i=0;ill sum2(T &a,ll start){ll ans = 0;for(ll i=start;ill sum3(T &a,ll start,ll en){ll ans = 0;for(ll i=start;ill sum4(T &a,ll start,ll en,ll tolerance){ll ans = 0;for(ll i=start;i& a){rep(i,a.size(),0){print(a[i]);if(i!=a.size()-1)print(' ');else print();}} void print(vector& a){rep(i,a.size(),0){print(a[i]);if(i!=a.size()-1)print(' ');else print();}} void println(){ putchar('\n'); } void println(bool a){ printf("%d\n", a); } void println(int a){ printf("%d\n", a); } void println(unsigned a){ printf("%u\n", a); } void println(long long a){ printf("%lld\n", a); } void println(unsigned long long a){ printf("%llu\n", a); } void println(char a){ printf("%c\n", a); } void println(char a[]){ printf("%s\n", a); } void println(float a){ printf("%.15f\n", a); } void println(double a){ printf("%.15f\n", a); } void println(long double a){ printf("%.15Lf\n", a); } void println(const string& a){ rep(i,a.size()) print(a[i]); print();} void println(vector& a){rep(i,a.size(),0){print(a[i]);print();}} void println(vector& a){rep(i,a.size(),0){print(a[i]);print();}} struct H_X_Y { ll H; ll x; ll y; }; bool tf(H_X_Y a,H_X_Y b){ return a.H>N>>K; unordered_set r_ans; vector H(N); vector A(N); rep(i,N) cin>>H[i]; rep(i,N){ cin>>x>>y; A[i].H = H[i]; A[i].x = x; A[i].y = y; } sort(all(A),tf); rep(i,N,0){ rep(j,N,i+1){ if(A[j].H<=A[i].H) continue; if(pow(pow(A[i].x-A[j].x,2)+pow(A[i].y-A[j].y,2),0.5)<=K) r_ans.insert(i); } } println(N-r_ans.size()); return 0; }