/*
TASK:colxor
LANG:C++
*/
#include<iostream>
using namespace std;
int n,r;
char a[15000][15000];
int dist(int x1,int y1,int x2,int y2)
{
    return (x1-x2)*(x1-x2)+(y1-y2)*(y1-y2);
}

int main()
{
      int minx=22005,miny=22005,maxx=0,maxy=0;
      cin>>n>>r;
      int r1=r;
      r=r*r;
      int i,x,y,j,k;
      for(i=0;i<n;i++)
      {
               cin>>x>>y;
               x+=7000;
               y+=7000;
               if(x<minx)minx=x;
               if(y<miny)miny=y;
               if(x>maxx)maxx=x;
               if(y>maxy)maxy=y;
               for(j=x-r1;j<=x+r1;j++)
                 for(k=y-r1;k<=y+r1;k++)
                    if(dist(j,k,x,y)<r || 
                       dist(j+1,k,x,y)<r || 
                       dist(j,k+1,x,y)<r || 
                       dist(j+1,k+1,x,y)<r)
                          {a[j][k]++;}
                           
                    
                 
                      
      }
      int result=0;
      for(j=minx-r1;j<=maxx+r1;j++)
      for(i=miny-r1;i<=maxy+r1;i++) 
          if(a[j][i]%2==1)result++;
      cout<<result<<endl;
      return 0;
}
