#include <bits/stdc++.h>
using namespace std;
inline char nc() { getchar(); }
inline void read(int &x) {
  char c = nc(), b = 1;
  for (; !(c >= '0' && c <= '9'); c = nc())
    if (c == '-') b = -1;
  for (x = 0; c >= '0' && c <= '9'; x = x * 10 + c - '0', c = nc())
    ;
  x *= b;
}
inline void read(long long &x) {
  char c = nc(), b = 1;
  for (; !(c >= '0' && c <= '9'); c = nc())
    if (c == '-') b = -1;
  for (x = 0; c >= '0' && c <= '9'; x = x * 10 + c - '0', c = nc())
    ;
  x *= b;
}
int wt, ss[19];
inline void print(int x) {
  if (x < 0) x = -x, putchar('-');
  if (!x)
    putchar(48);
  else {
    for (wt = 0; x; ss[++wt] = x % 10, x /= 10)
      ;
    for (; wt; putchar(ss[wt] + 48), wt--)
      ;
  }
}
inline void print(long long x) {
  if (x < 0) x = -x, putchar('-');
  if (!x)
    putchar(48);
  else {
    for (wt = 0; x; ss[++wt] = x % 10, x /= 10)
      ;
    for (; wt; putchar(ss[wt] + 48), wt--)
      ;
  }
}
long long n, m;
vector<long long> a(m + 10);
int main() {
  read(n);
  read(m);
  long long x, y, z;
  for (int i = 0; i < n; i++) {
    read(x);
    read(y);
    z = y - x + 1;
    a[0] += 1;
    a[z] -= 1;
    long long t = z + 1, s;
    while (t <= m) {
      long long v = ((x + t - 1) / t);
      if ((x + t - 1) / t <= 0) break;
      s = y / ((x + t - 1) / t);
      if (s >= t) a[t - 1] += 1, a[s] -= 1;
      if ((x + t - 1) / t <= 1) break;
      t = max(s + 1, (x + (v - 1) - 1) / (v - 1));
    }
  }
  cout << a[0] << endl;
  for (int i = 1; i < m; i++) a[i] += a[i - 1], cout << a[i] << endl;
  return 0;
}
