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

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