#include <bits/stdc++.h>
using namespace std;
const int maxn = 200005;
struct pi {
  int x, y;
  int ff;
} pp[maxn];
int cmp(pi a, pi b) {
  if (a.x != b.x) return a.x < b.x;
  return a.y < b.y;
}
int cnt[maxn];
int pre[maxn];
int hei[maxn];
long long ans[maxn];
int main() {
  int n, k;
  cin >> n >> k;
  for (int i = 1; i <= n; i++) {
    scanf("%d%d", &pp[2 * i - 1].x, &pp[2 * i - 1].y);
    pp[2 * i - 1].ff = 1;
    pp[2 * i] = pp[2 * i - 1];
    hei[2 * i - 1] = pp[2 * i - 1].y;
    hei[2 * i] = hei[2 * i - 1] + k;
    pp[2 * i].ff = -1;
    pp[2 * i].x += k;
  }
  sort(hei + 1, hei + 1 + 2 * n);
  int cc = 1;
  for (int i = 1; i <= 2 * n; i++) {
    if (hei[i] != hei[cc]) {
      hei[cc + 1] = hei[i];
      cc++;
    }
  }
  sort(pp + 1, pp + 1 + 2 * n, cmp);
  for (int i = 1; i <= 2 * n; i++) {
    int y = lower_bound(hei + 1, hei + 1 + cc, pp[i].y) - hei;
    for (int j = y; hei[j] < pp[i].y + k; j++) {
      if (cnt[j] > 0) {
        ans[cnt[j]] += (long long)(hei[j + 1] - hei[j]) * (pp[i].x - pre[j]);
      }
      pre[j] = pp[i].x;
      cnt[j] += pp[i].ff;
    }
  }
  for (int i = 1; i <= n; i++) printf("%I64d ", ans[i]);
}
