#include <bits/stdc++.h>
using namespace std;
int power(int a, int b, int c, int ans = 1) {
  for (; b; b >>= 1, a = (long long)a * a % c)
    if (b & 1) ans = (long long)ans * a % c;
  return ans;
}
const int NN = 55;
int a[NN * NN], first[NN], second[NN], n;
const int mod = 998244353, M = 155;
pair<pair<int, int>, int> p[NN * 3];
int tmp[NN];
void erase(int &n, int first) {
  int u = lower_bound(tmp, tmp + n, first) - tmp;
  n--;
  for (int i = u; i < n; i++) tmp[i] = tmp[i + 1];
}
void add(int &n, int first) {
  int u = upper_bound(tmp, tmp + n, first) - tmp;
  for (int i = n; i > u; i--) tmp[i] = tmp[i - 1];
  tmp[u] = first;
  n++;
}
int calc(int n, int t) {
  int ans = 0;
  for (int i = 0, j; i < n; i = j) {
    for (j = i + 1; j < n && tmp[j - 1] + 2 * t >= tmp[j]; j++)
      ;
    ans = (ans + 2LL * t + 1 + tmp[j - 1] - tmp[i]) % mod;
  }
  return ans;
}
int ff(int t) {
  if (t == 0) return n;
  int nn = 0;
  for (int i = 0; i < n; i++) {
    p[nn++] = make_pair(make_pair(first[i] - t, 1), second[i] - t);
    p[nn++] = make_pair(make_pair(first[i] + t + 1, -1), second[i] - t);
  }
  sort(p, p + nn);
  int tt = 0, ans = 0, pre = 0, prex = 0;
  for (int i = 0, j; i < nn; i = j) {
    for (j = i; j < nn && p[i].first.first == p[j].first.first; j++) {
      if (p[j].first.second == -1)
        erase(tt, p[j].second);
      else
        add(tt, p[j].second);
    }
    if (i) ans = (ans + (long long)prex * (p[i].first.first - pre)) % mod;
    pre = p[i].first.first;
    prex = calc(tt, t);
  }
  return ans;
}
int main() {
  int t;
  cin >> n >> t;
  for (int i = 0; i < n; i++) scanf("%d%d", first + i, second + i);
  int nn = 1;
  a[nn++] = t;
  for (int i = 0; i < n; i++)
    for (int j = i + 1; j < n; j++) {
      a[nn] =
          max(abs(first[i] - first[j]), abs(second[i] - second[j])) + 1 >> 1;
      if (a[nn] > t) continue;
      nn++;
    }
  sort(a, a + nn);
  nn = unique(a, a + nn) - a;
  int ans = 0;
  for (int i = 1; i < nn; i++) {
    if (a[i] - a[i - 1] < 6) {
      for (int j = a[i - 1]; j < a[i]; j++) ans = (ans + ff(j)) % mod;
      continue;
    }
    int now = 0;
    for (int j = 0; j < 4; j++) {
      int mid = 1;
      for (int k = 0; k < 4; k++)
        if (k != j)
          mid = (long long)mid * (a[i] - 1 - a[i - 1] - k) % mod *
                power((j - k + mod) % mod, mod - 2, mod) % mod;
      now = (now + ff(a[i - 1] + j)) % mod;
      ans = (ans + (long long)mid * now) % mod;
    }
  }
  ans = ((long long)t * ff(t) + mod - ans) % mod;
  cout << ans << endl;
  return 0;
}
