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

#include <iostream>
#include <cstdio>
#include <fstream>
#include <cstdlib>
#define MAX 1024
#define in cin
#define out cout

using namespace std;
//ifstream in; ofstream out;

int n, r, rr;
int a[MAX][2];


int check(int cur, int x, int y)
{
int i;
int ans = 1;

for (i=cur; i<n; i++)
    {
    if (x < a[i][0])
       {
       if (y < a[i][1])
          {
          if ((a[i][0]-(x+1))*(a[i][0]-(x+1)) + (a[i][1]-(y+1))*(a[i][1]-(y+1)) < rr) ans++;
          }
       else
          {
          if ((a[i][0]-(x+1))*(a[i][0]-(x+1)) + (a[i][1]-y)*(a[i][1]-y) < rr) ans++;
          }
       }
    else
       {
       if (y < a[i][1])
          {
          if ((a[i][0]-x)*(a[i][0]-x) + (a[i][1]-(y+1))*(a[i][1]-(y+1)) < rr) ans++;
          }
       else
          {
          if ((a[i][0]-x)*(a[i][0]-x) + (a[i][1]-y)*(a[i][1]-y) < rr) ans++;
          }
       }
    }

return ans;
}


int included(int cur, int x, int y)
{
int i;

for (i=0; i<cur; i++)
    {
    if (x < a[i][0])
       {
       if (y < a[i][1])
          {
          if ((a[i][0]-(x+1))*(a[i][0]-(x+1)) + (a[i][1]-(y+1))*(a[i][1]-(y+1)) < rr) return 1;
          }
       else
          {
          if ((a[i][0]-(x+1))*(a[i][0]-(x+1)) + (a[i][1]-y)*(a[i][1]-y) < rr) return 1;
          }
       }
    else
       {
       if (y < a[i][1])
          {
          if ((a[i][0]-x)*(a[i][0]-x) + (a[i][1]-(y+1))*(a[i][1]-(y+1)) < rr) return 1;
          }
       else
          {
          if ((a[i][0]-x)*(a[i][0]-x) + (a[i][1]-y)*(a[i][1]-y) < rr) return 1;
          }
       }
    }

return 0;
}

long long farea(int cur)
{
int i, c;
long long ans;

ans = 0;

for (i=a[cur][0]-r; i<a[cur][0]; i++)
    {
    for (c=a[cur][1]-r; c<a[cur][1]; c++)
        {
        if ((i+1-a[cur][0])*(i+1-a[cur][0]) + (c+1-a[cur][1])*(c+1-a[cur][1]) < rr)
           if ((!included(cur, i, c)) && (check(cur+1, i, c)%2))
           {
           ans++;
           }
        }
    
    for (c=a[cur][1]; c<a[cur][1]+r; c++)
        {
        if ((i+1-a[cur][0])*(i+1-a[cur][0]) + (c-a[cur][1])*(c-a[cur][1]) < rr)
           if ((!included(cur, i, c)) && (check(cur+1, i, c)%2))
           {
           ans++;
           }
        }
    }

for (i=a[cur][0]; i<a[cur][0]+r; i++)
    {
    for (c=a[cur][1]-r; c<a[cur][1]; c++)
        {
        if ((i-a[cur][0])*(i-a[cur][0]) + (c+1-a[cur][1])*(c+1-a[cur][1]) < rr)
           if ((!included(cur, i, c)) && (check(cur+1, i, c)%2))
           {
           ans++;
           }
        }
    
    for (c=a[cur][1]; c<a[cur][1]+r; c++)
        {
        if ((i-a[cur][0])*(i-a[cur][0]) + (c-a[cur][1])*(c-a[cur][1]) < rr)
           if ((!included(cur, i, c)) && (check(cur+1, i, c)%2))
           {
           ans++;
           }
        
        }
    
    }


return ans;
}


int main(void)
{
int i;
long long sum;

//in.open("colxor.in"); out.open("colxor.out");

in >> n >> r; rr = r*r;

for (i=0; i<n; i++)
    {
    in >> a[i][0];
    in >> a[i][1];
    }

sum = 0;
for (i=0; i<n; i++) sum += farea(i);

out << sum << endl;

//system("pause");

return 0;
}
