#include <bits/stdc++.h>
using namespace std;
const int maxn = 100000;
int n, m, c[maxn + 5];
struct node {
  int l, r;
  bool operator<(const node &x) const { return r - l + 1 < x.r - x.l + 1; }
} a[maxn + 5];
int lb(int x) { return x & (-x); }
void add(int x, int d) {
  for (int i = x; i <= n; i += lb(i)) c[i] += d;
}
int sum(int x) {
  int ret = 0;
  for (int i = x; i; i -= lb(i)) ret += c[i];
  return ret;
}
int main() {
  scanf("%d %d", &m, &n);
  for (int i = 1; i <= m; i++) {
    scanf("%d %d", &a[i].l, &a[i].r);
  }
  int pos = 1;
  sort(a + 1, a + m + 1);
  for (int i = 1; i <= n; i++) {
    while (pos <= m && a[pos].r - a[pos].l + 1 <= i) {
      add(a[pos].l, 1);
      add(a[pos].r + 1, -1);
      pos++;
    }
    int ans = m - pos;
    for (int j = i; j <= n; j += i) {
      ans += sum(j);
    }
    printf("%d\n", ans + 1);
  }
  return 0;
}
