/*
TASK:colxor
LANG:C
*/

#include<stdio.h>

int d(int ,int ,int );

int n,r;
int h,i,j;
int x[1024],y[1024];
int minx,maxx,toaddx;
int miny,maxy,toaddy;
int stx,enx;
int sty,eny;
int total=0;
short t[2048][2048]={0};

int main () {
    freopen("test.txt","rt",stdin);
    scanf("%d %d",&n,&r);
    for (i=0;i<n;i++)
        scanf("%d %d",&x[i],&y[i]);
    minx=maxx=x[0];
    miny=maxy=y[0];
    for (i=1;i<n;i++) {
        if (x[i]<minx) minx=x[i];
        else if (x[i]>maxx) maxx=x[i];
        if (y[i]<miny) miny=y[i];
        else if (y[i]>maxy) maxy=y[i];
        }
    toaddx=r-minx;
    toaddy=r-miny;
    maxx+=toaddx+r;
    maxy+=toaddy+r;
    for (h=0;h<n;h++) {
        x[h]+=toaddx;
        y[h]+=toaddy;
        stx=x[h]-r;
        sty=y[h]-r;
        enx=x[h]+r;
        eny=y[h]+r;
        for (i=stx;i<eny;i++)
            for (j=sty;j<eny;j++)
                if (i<x[h]&&j<y[h]) {
                   if (d(x[h]-i-1,y[h]-j-1,r))
                      t[j][i]++;
                   }
                else if (i<x[h]&&j>=y[h]) {
                        if (d(x[h]-i-1,y[h]-j,r))
                           t[j][i]++;
                        }
                else if (i>=x[h]&&j>=y[h]) {
                        if (d(x[h]-i,y[h]-j,r))
                           t[j][i]++;
                        }
                else if (i>=x[h]&&j<y[h]) {
                        if (d(x[h]-i,y[h]-j-1,r))
                           t[j][i]++;
                        }
        }

    for (i=0;i<maxx;i++)
        for (j=0;j<maxy;j++)
            if (t[j][i]%2) total++;
    printf("%d\n",total);
    return 0;
    }

int d(int a,int b,int c) {
    if (a*a+b*b<r*r) return 1;
    return 0;
    }
