/*
TASK: colxor
LANG: C++
*/

#include<iostream>
#include<cmath>
#include<vector>
using namespace std;
struct str{long x,y;} s[1000];
long n,r,p;
unsigned long mf;
vector <int> z[21005];
void fp()
{
 long a,b,i;
 long double t;

 b=s[0].y+(r-1);
 a=s[0].x+(r-1);
 t=sqrt((a-s[0].x)*(a-s[0].x)+(b-s[0].y)*(b-s[0].y));
 while(1)
 {
  if(t<r)break;
  p++;
  a--;
  t=sqrt((a-s[0].x)*(a-s[0].x)+(b-s[0].y)*(b-s[0].y));
 }
}

int main()
{
 long maxx=-21000,maxy=-2100,minx=2100,miny=21000,i,j,l,k;
 cin>>n>>r;

 for(i=0;i<n;i++)
 {
  cin>>s[i].x>>s[i].y;
  if(s[i].x>maxx)maxx=s[i].x;
  if(s[i].y>maxy)maxy=s[i].y;
  if(s[i].x<minx)minx=s[i].x;
  if(s[i].y<miny)miny=s[i].y;
 }
 fp();

 for(i=0;i<n;i++)
 {
  s[i].x=s[i].x-minx+r;
  s[i].y=s[i].y-miny+r;
 }

 maxx=maxx-minx+r*2;
 maxy=maxy-miny+r*2;

 for(i=0;i<=maxx;i++)
  for(j=0;j<=maxy;j++)
   z[i].push_back(0);

 for(i=0;i<n;i++)
  for(j=s[i].y-r;j<s[i].y+r;j++)
   for(l=s[i].x-r;l<s[i].x+r;l++)
   {
	if(z[j][l]){mf--;z[j][l]=0;}
	else {mf++;z[j][l]=1;}
   }

 for(i=0;i<n;i++)
 {
  k=0;
  for(j=s[i].y+r-1;j>s[i].y+r-p-1;j--)
  {
   for(l=s[i].x-r;l<s[i].x-r+p-k;l++)
   {
	if(z[j][l]){mf--;z[j][l]=0;}
	else {mf++;z[j][l]=1;}
   }
   k++;
  }
 }

 for(i=0;i<n;i++)
 {
  k=0;
  for(j=s[i].y+r-1;j>s[i].y+r-p-1;j--)
  {
   for(l=s[i].x+r-1;l>s[i].x+r-p+k-1;l--)
   {
	if(z[j][l]){mf--;z[j][l]=0;}
	else {mf++;z[j][l]=1;}
   }
   k++;
  }
 }

 for(i=0;i<n;i++)
 {
  k=0;
  for(j=s[i].y-r;j<s[i].y-r+p;j++)
  {
   for(l=s[i].x-r;l<s[i].x-r+p-k;l++)
   {
	if(z[j][l]){mf--;z[j][l]=0;}
	else {mf++;z[j][l]=1;}
   }
   k++;
  }
 }
 for(i=0;i<n;i++)
 {
  k=0;
  for(j=s[i].y-r;j<s[i].y-r+p;j++)
  {
   for(l=s[i].x+r-1;l>s[i].x+r-p+k-1;l--)
   {
	if(z[j][l]){mf--;z[j][l]=0;}
	else {mf++;z[j][l]=1;}
   }
   k++;
  }
 }

 cout<<mf<<'\n';
 return 0;
}
