#include <bits/stdc++.h>
const int N = 2e5 + 10;
int n, k;
std::pair<int, int> a[N];
long long ans[N];
int c[N];
int an;
int num[N], nn;
int main() {
  int i, j;
  int x, y, t;
  scanf("%d %d", &n, &k);
  k--;
  for (i = 1; i <= int(n); i++) {
    scanf("%d %d", &x, &y);
    a[++an] = std::pair<int, int>(x - k, y * 2);
    num[an] = y - k;
    a[++an] = std::pair<int, int>(x + 1, y * 2 + 1);
    num[an] = y + 1;
  }
  std::sort(num + 1, num + 1 + an);
  nn = std::unique(num + 1, num + 1 + an) - num - 1;
  std::sort(a + 1, a + 1 + an);
  for (i = 1; i <= int(an); i++) {
    x = a[i].first;
    y = a[i].second;
    if (y % 2) {
      t = -1;
      y--;
    } else
      t = 1;
    y /= 2;
    for (j = std::upper_bound(num + 1, num + 1 + nn, y) - num - 1;
         j and num[j] >= y - k; j--) {
      ans[c[j]] -= (a[an].first - a[i].first + 1LL) * (num[j + 1] - num[j]);
      c[j] += t;
      ans[c[j]] += (a[an].first - a[i].first + 1LL) * (num[j + 1] - num[j]);
    }
  }
  for (i = 1; i <= int(n); i++) printf("%lld ", ans[i]);
  putchar('\n');
  return 0;
}
