/*
TASK:colxor
LANG:C++
*/
#include<iostream>
using namespace std;
int n,r,x,y;
bool a[11000][11000];
int b[2][1000];
inline 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>>b[0][i]>>b[1][i];
               if(b[0][i]<minx)minx=b[0][i];
               if(b[1][i]<miny)miny=b[1][i];
               if(b[0][i]>maxx)maxx=b[0][i];
               if(b[1][i]>maxy)maxy=b[1][i];
      }
      for(i=0;i<n;i++)
      {
               
               x=b[0][i]-minx;
               y=b[1][i]-miny;
               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;
}
