#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 5;
int n, k;
long long ans[N];
int last[N << 1], cnt[N << 1];
int main() {
  scanf("%d %d", &n, &k);
  vector<int> vs;
  vector<pair<pair<int, int>, pair<int, int> > > ev;
  for (int i = 1; i <= n; i++) {
    int x, y;
    scanf("%d %d", &x, &y);
    ev.push_back({{x - k + 1, +1}, {y - k + 1, y}});
    ev.push_back({{x + 1, -1}, {y - k + 1, y}});
    vs.push_back(y - k + 1);
    vs.push_back(y + 1);
  }
  sort(vs.begin(), vs.end());
  vs.resize(unique(vs.begin(), vs.end()) - vs.begin());
  sort(ev.begin(), ev.end());
  for (auto tmp : ev) {
    int x, v, y1, y2;
    tie(x, v) = tmp.first;
    tie(y1, y2) = tmp.second;
    int i = lower_bound(vs.begin(), vs.end(), y1) - vs.begin();
    while (i < vs.size() and vs[i] <= y2) {
      ans[cnt[i]] += (long long)(vs[i + 1] - vs[i]) * (x - last[i]);
      cnt[i] += v;
      last[i] = x;
      i++;
    }
  }
  for (int i = 1; i <= n; i++) printf("%lld ", ans[i]);
  puts("");
  return 0;
}
