#include <bits/stdc++.h>
#define FOR(i, a, b) for (int i = (a); i <= (b); i++)
#define FOD(i, a, b) for (int i = (a); i >= (b); i--)
#define REP(i, n) for (int i = 0; i < (n); i++)
#define ALL(x) (x).begin(), (x).end()
#define TIME (1.0 * clock() / CLOCKS_PER_SEC)
#define TASK "ANT"
using namespace std;
const int MAXN = 1e3 + 5;
int dx[] = {0, 1, -1, 0};
int dy[] = {1, 0, 0, -1};
int n, S;
int dist[2 * MAXN][2 * MAXN];
bool dd[2 * MAXN][2 * MAXN];
long long ans;
void BFS(int x, int y) {
queue <pair <int, int>> q;
q.emplace(MAXN, MAXN);
dist[MAXN][MAXN] = 0;
while (q.size()) {
pair <int, int> u = q.front(); q.pop();
int x = u.first - MAXN, y = u.second - MAXN;
ans++;
if (dist[x + MAXN][y + MAXN] == S) continue;
REP(i, 4) {
int nx = x + dx[i];
int ny = y + dy[i];
if (abs(nx) > 1000 || abs(ny) > 1000 || dd[nx + MAXN][ny + MAXN]) continue;
if (dist[nx + MAXN][ny + MAXN] > dist[x + MAXN][y + MAXN] + 1) {
dist[nx + MAXN][ny + MAXN] = dist[x + MAXN][y + MAXN] + 1;
q.emplace(nx + MAXN, ny + MAXN);
}
}
}
}
signed main(){
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
if(fopen(TASK".inp", "r")){
freopen(TASK".inp","r",stdin);
freopen(TASK".out","w",stdout);
}
cin >> n >> S;
ans = 2ll * S * S + 2 * S + 1;
FOR(i, 1, n) {
int x, y; cin >> x >> y;
dd[x + MAXN][y + MAXN] = 1;
}
FOR(x, -1000, 1000) FOR(y, -1000, 1000) {
dist[x + MAXN][y + MAXN] = 1e9;
if (abs(x) + abs(y) <= S) ans--;
}
BFS(0, 0);
cout << ans;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgRk9SKGksIGEsIGIpIGZvciAoaW50IGkgPSAoYSk7IGkgPD0gKGIpOyBpKyspCiNkZWZpbmUgRk9EKGksIGEsIGIpIGZvciAoaW50IGkgPSAoYSk7IGkgPj0gKGIpOyBpLS0pCiNkZWZpbmUgUkVQKGksIG4pIGZvciAoaW50IGkgPSAwOyBpIDwgKG4pOyBpKyspCiNkZWZpbmUgQUxMKHgpICh4KS5iZWdpbigpLCAoeCkuZW5kKCkKI2RlZmluZSBUSU1FICAoMS4wICogY2xvY2soKSAvIENMT0NLU19QRVJfU0VDKQojZGVmaW5lIFRBU0sgIkFOVCIKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNvbnN0IGludCBNQVhOID0gMWUzICsgNTsKCmludCBkeFtdID0gezAsIDEsIC0xLCAwfTsKaW50IGR5W10gPSB7MSwgMCwgMCwgLTF9OwoKaW50IG4sIFM7CmludCBkaXN0WzIgKiBNQVhOXVsyICogTUFYTl07CmJvb2wgZGRbMiAqIE1BWE5dWzIgKiBNQVhOXTsKbG9uZyBsb25nIGFuczsKCnZvaWQgQkZTKGludCB4LCBpbnQgeSkgewogICAgcXVldWUgPHBhaXIgPGludCwgaW50Pj4gcTsKICAgIHEuZW1wbGFjZShNQVhOLCBNQVhOKTsKICAgIGRpc3RbTUFYTl1bTUFYTl0gPSAwOwogICAgd2hpbGUgKHEuc2l6ZSgpKSB7CiAgICAgICAgcGFpciA8aW50LCBpbnQ+IHUgPSBxLmZyb250KCk7IHEucG9wKCk7CiAgICAgICAgaW50IHggPSB1LmZpcnN0IC0gTUFYTiwgeSA9IHUuc2Vjb25kIC0gTUFYTjsKICAgICAgICBhbnMrKzsKICAgICAgICBpZiAoZGlzdFt4ICsgTUFYTl1beSArIE1BWE5dID09IFMpIGNvbnRpbnVlOwogICAgICAgIFJFUChpLCA0KSB7CiAgICAgICAgICAgIGludCBueCA9IHggKyBkeFtpXTsKICAgICAgICAgICAgaW50IG55ID0geSArIGR5W2ldOwogICAgICAgICAgICBpZiAoYWJzKG54KSA+IDEwMDAgfHwgYWJzKG55KSA+IDEwMDAgfHwgZGRbbnggKyBNQVhOXVtueSArIE1BWE5dKSBjb250aW51ZTsKICAgICAgICAgICAgaWYgKGRpc3RbbnggKyBNQVhOXVtueSArIE1BWE5dID4gZGlzdFt4ICsgTUFYTl1beSArIE1BWE5dICsgMSkgewogICAgICAgICAgICAgICAgZGlzdFtueCArIE1BWE5dW255ICsgTUFYTl0gPSBkaXN0W3ggKyBNQVhOXVt5ICsgTUFYTl0gKyAxOwogICAgICAgICAgICAgICAgcS5lbXBsYWNlKG54ICsgTUFYTiwgbnkgKyBNQVhOKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KfQoKc2lnbmVkIG1haW4oKXsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOyAKICAgIGNpbi50aWUobnVsbHB0cik7IAogICAgY291dC50aWUobnVsbHB0cik7CiAgICAKICAgIGlmKGZvcGVuKFRBU0siLmlucCIsICJyIikpewogICAgZnJlb3BlbihUQVNLIi5pbnAiLCJyIixzdGRpbik7CiAgICBmcmVvcGVuKFRBU0siLm91dCIsInciLHN0ZG91dCk7CiAgICB9CiAgICBjaW4gPj4gbiA+PiBTOwoKICAgIGFucyA9IDJsbCAqIFMgKiBTICsgMiAqIFMgKyAxOwoKICAgIEZPUihpLCAxLCBuKSB7CiAgICAgICAgaW50IHgsIHk7IGNpbiA+PiB4ID4+IHk7CiAgICAgICAgZGRbeCArIE1BWE5dW3kgKyBNQVhOXSA9IDE7CiAgICB9CgogICAgRk9SKHgsIC0xMDAwLCAxMDAwKSBGT1IoeSwgLTEwMDAsIDEwMDApIHsKICAgICAgICBkaXN0W3ggKyBNQVhOXVt5ICsgTUFYTl0gPSAxZTk7CiAgICAgICAgaWYgKGFicyh4KSArIGFicyh5KSA8PSBTKSBhbnMtLTsKICAgIH0KCiAgICBCRlMoMCwgMCk7CiAgICBjb3V0IDw8IGFuczsKICAgIHJldHVybiAwOwp9