#include using namespace std; int n; double r,x,y; struct slog{ int idx; double x,y; bool ostaje=true; } niz[100005]; vector res; double razdaljina(int x1, int y1, int x2, int y2){ return sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)); } //void RES(){ // for(int i=1;i<=n;i++){ // if(niz[i].ostaje){ // for(int j=1;j<=n;j++){ // if(j!=i and razdaljina(niz[i].x,niz[j].x,niz[i].y,niz[j].y)<2*r) niz[j].ostaje=false; // } // } // } //} int main(){ freopen("mars.in", "r", stdin); freopen("mars.out", "w", stdout); scanf("%d %lf", &n, &r); for(int i=1;i<=n;i++){ scanf("%lf %lf", &x, &y); niz[i].x=x; niz[i].y=y; niz[i].idx=i; } //RES(); for(int i=1;i<=n;i++){ if(niz[i].ostaje){ for(int j=1;j<=n;j++){ if(j!=i and razdaljina(niz[i].x,niz[j].x,niz[i].y,niz[j].y)<2.0*r) niz[j].ostaje=false; } } } for(int i=1;i<=n;i++) if(niz[i].ostaje) res.push_back(niz[i].idx); sort(res.begin(),res.end()); int vs=res.size(); printf("%d\n", vs); for(int i=0;i