#include #include #include #include using namespace std; long long f(long long a,long long b,long long c,long long d){ return (a-c)*(a-c)+(b-d)*(b-d); } int main() { long long n,k; cin >> n >> k; k*=k; vectorh(n); for(int i=0;i> h[i]; vector>num(n); for(int i=0;i> num[i].first >> num[i].second; vector>graph(n); vectoramount(n,0); for(int i=0;ih[j]){ graph[j].emplace_back(i+1); amount[i]++; } else if(h[i]life(n,true); priority_queue,vector>,greater>>prq; for(int i=0;ihako=prq.top(); prq.pop(); int a=hako.second; if(amount[a-1]!=hako.first || life[a-1]==false)continue; bool ok=false; for(int i=0;i