/*
TASK:colxor
LANG:C
*/
#include <stdio.h>
#define GRD 5000
#define isin(ax, ay, cx, cy, r) ((ax-cx)*(ax-cx)+(ay-cy)*(ay-cy)<r*r ||\
                                 (ax-cx)*(ax-cx)+(ay-cy-1)*(ay-cy-1)<r*r ||\
                                 (ax-cx-1)*(ax-cx-1)+(ay-cy)*(ay-cy)<r*r ||\
                                 (ax-cx-1)*(ax-cx-1)+(ay-cy-1)*(ay-cy-1)<r*r )
char grid[GRD*2+10][GRD*2+10];
int N, R;
main()
{
    int i, y, x, a, b, ret=0;
    scanf("%d %d", &N, &R);
    for(i=0; i<GRD*2+10; i++)for(y=0; y<GRD*2+10; y++)grid[i][y]=0;
    for(i=0; i<N; i++)
    {
        scanf("%d %d", &a, &b);
        for(x=a-R; x<=a+R; x++)
            for(y=b-R; y<=b+R; y++)
                if(isin(x, y, a, b, R))
                    grid[x+500][y+500]=grid[x+500][y+500]?0:1;
    }
    
    for(i=0; i<GRD*2+10; i++)for(y=0; y<GRD*2+10; y++)if(grid[i][y])ret++;
    printf("%d\n", ret);
    return 0;
}
