#include <bits/stdc++.h>
using namespace std;
int n, k;
map<int, int> S;
long long ans[300010];
vector<pair<pair<int, int>, bool> > ev;
void mod(int x, int val) {
  S[x] += val;
  if (S[x] == 0) {
    S.erase(x);
  }
}
void insert(int start) {
  mod(start, 1);
  mod(start + k, -1);
}
void remove(int start) {
  mod(start, -1);
  mod(start + k, 1);
}
int main() {
  ios_base::sync_with_stdio(false);
  cin >> n >> k;
  for (int i = 1; i <= n; ++i) {
    int x, y;
    cin >> x >> y;
    ev.push_back({{x - k + 1, y - k + 1}, 0});
    ev.push_back({{x + 1, y - k + 1}, 1});
  }
  sort(ev.begin(), ev.end());
  for (int i = 0; i < ev.size(); ++i) {
    if (ev[i].second == 0) {
      insert(ev[i].first.second);
    } else {
      remove(ev[i].first.second);
    }
    long long mult = 2000000010;
    if (i + 1 < ev.size())
      mult = min(mult, (long long)(ev[i + 1].first.first - ev[i].first.first));
    if (mult == 0) continue;
    long long sum = 0;
    for (auto it = S.begin(); it != S.end(); ++it) {
      auto it2 = it;
      ++it2;
      long long mult2 = 2000000010;
      if (it2 != S.end()) {
        mult2 = min(mult2, (long long)(it2->first - it->first));
      }
      sum += it->second;
      ans[sum] += mult * mult2;
    }
  }
  for (int i = 1; i <= n; ++i) {
    cout << ans[i] << " ";
  }
}
