#include <bits/stdc++.h>

using namespace std;

const int maxn = 300000; 

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; 
}