#include <bits/stdc++.h>
using namespace std;
static const long long INF = 1ll << 60;
static const long long dx[] = {
    1,
    -1,
    0,
    0,
};
static const long long dy[] = {0, 0, 1, -1};
static const long long mod = 1000000007;
static const long long MAX_M = 100000;
long long N, M;
long long l[MAX_M * 3], r[MAX_M * 3];
long long v[MAX_M * 3], s[MAX_M * 3];
void solve(long long d) {
  for (long long i = 0; i <= M; ++i) v[i] = s[i] = 0;
  long long res = 0;
  for (long long i = 0; i < N; ++i) {
    if (d > r[i] - l[i]) {
      v[l[i]] += 1;
      v[r[i] + 1] += -1;
    } else
      res++;
  }
  for (long long i = 1; i <= M; ++i) {
    s[i] = s[i - 1] + v[i];
  }
  long long x = 0, t = 1;
  while (1) {
    if (x > M) break;
    res += s[x];
    x = d * t;
    t++;
  }
  cout << res << endl;
}
signed main() {
  cin >> N >> M;
  for (long long i = 0; i < N; ++i) {
    cin >> l[i] >> r[i];
    v[l[i]] += 1;
    v[r[i] + 1] += -1;
  }
  for (long long i = 1; i <= M; ++i) {
    solve(i);
  }
}
