/*
TASK:colxor
LANG:C
*/
#include <stdio.h>

	long N, R;
  long l[1001][2], i, j, k, t, minx=10001, maxx=-10001, miny=10001, maxy=-10001;

int main() {
  long ans=0;
  scanf("%d%d", &N, &R);
  for(i=0; i<N;  i++) {
  	scanf("%d%d", &l[i][0], &l[i][1]);
    if(minx>l[i][0]-R) minx=l[i][0]-R;
    if(maxx<l[i][0]+R) maxx=l[i][0]+R;
    if(miny>l[i][1]-R) miny=l[i][1]-R;
    if(maxy<l[i][1]+R) maxy=l[i][1]+R;
  }
  R*=R;
  for(i=minx; i<maxx; i+=1)
  	for(j=miny; j<maxy; j+=1) {
    	for(k=t=0; k<N; k+=1) {
      	if(c00R() || c01R() || c10R() || c11R()) t+=1;
      }
      ans+=t%2;
    }
  printf("%ld\n", ans);
	return 0;
}

int c00R() {
	return (((i-l[k][0])*(i-l[k][0])+(j-l[k][1])*(j-l[k][1]))<R);
}
int c10R() {
	return (((i+1-l[k][0])*(i+1-l[k][0])+(j-l[k][1])*(j-l[k][1]))<R);
}
int c01R() {
	return (((i-l[k][0])*(i-l[k][0])+(j+1-l[k][1])*(j+1-l[k][1]))<R);
}
int c11R() {
	return (((i+1-l[k][0])*(i+1-l[k][0])+(j+1-l[k][1])*(j+1-l[k][1]))<R);
}

