#include <bits/stdc++.h>
using namespace std;
template <typename t>
ostream& operator,(ostream& os, t x) {
  return os << ' ' << x;
}
int cnt[30000005];
int last[30000005];
long long ans[100005];
int a[100005], b[100005], c[100005];
int n, k;
map<int, int> pos;
vector<pair<int, pair<int, int> > > qu;
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cin >> n >> k;
  for (int i = 1; i <= n; i++) {
    cin >> a[i] >> b[i];
    c[i] = a[i];
  }
  sort(c + 1, c + n + 1);
  int cur = 0;
  for (int i = 1; i <= n; i++) {
    if (c[i] != c[i + 1]) {
      pos[c[i]] = cur;
      cur += min(k, c[i + 1] - c[i]);
    }
  }
  for (int i = 1; i <= n; i++) {
    qu.push_back(make_pair(b[i], make_pair(pos[a[i]], 1)));
    qu.push_back(make_pair(b[i] + k, make_pair(pos[a[i]], -1)));
  }
  sort(qu.begin(), qu.end());
  for (int i = 0; i < qu.size(); i++) {
    int X = qu[i].second.first;
    int Y = qu[i].first;
    int Z = qu[i].second.second;
    for (int j = X; j < X + k; j++) {
      ans[cnt[j]] += Y - last[j];
      cnt[j] += Z;
      last[j] = Y;
    }
  }
  for (int i = 1; i <= n; i++) cout << ans[i] << ' ';
}
