#include <bits/stdc++.h>
using pii = std::pair<long long, long long>;
using namespace std;
const long long maxn = 3e5 + 5;
long long n, m, l[maxn], r[maxn], good[maxn];
int32_t main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cin >> n >> m;
  vector<pii> order;
  for (long long i = 0; i < n; i++) {
    cin >> l[i] >> r[i];
    order.push_back({r[i], i});
  }
  sort(order.begin(), order.end());
  for (long long i = 1; i <= m; i++) {
    long long curstep = 0;
    for (long long j = 0; j < n; j++) good[j] = 0;
    for (long long j = 0; i * j <= m; j++) {
      long long curpos = i * (j + 1), prevpos = i * j;
      while (curstep < order.size() && order[curstep].first < curpos) {
        if (l[order[curstep].second] <= prevpos)
          good[order[curstep].second] = 1;
        curstep++;
      }
    }
    long long ans = 0;
    for (long long j = 0; j < n; j++) ans += good[j];
    cout << ans << "\n";
  }
  return 0;
}
