#include #include #include #include #include #define rep(i,n) for(i=0;i<(int)(n);i++) using namespace std; typedef long long ll; typedef unsigned long long ull; typedef pair P; int n,k; int main(){ int i,j,ii; scanf("%d%d",&n,&k); vector h(n); vector

hs;//(id,h) vector exist(n,true); rep(i,n){ scanf("%d",&h[i]); hs.push_back(P(h[i],i)); } sort(hs.begin(),hs.end()); vector

xy(n); rep(i,n)scanf("%d%d",&xy[i].first,&xy[i].second); vector > adj(n); auto judge=[&](int a,int b)->bool{ return ((ll)xy[a].first-xy[b].first)*((ll)xy[a].first-xy[b].first)+((ll)xy[a].second-xy[b].second)*((ll)xy[a].second-xy[b].second)<=(ll)k*k; }; rep(i,n)rep(j,i){ if(judge(i,j)){ adj[i].push_back(j); adj[j].push_back(i); } } ii=n; rep(i,n)if(exist[hs[i].second]){ rep(j,adj[hs[i].second].size()){ if(exist[adj[hs[i].second][j]]&&hs[i].first