#include <bits/stdc++.h>
using namespace std;
#define FOR(i,a,b) for(int i=(a);i<(b);i++)
#define REP(i,a) FOR(i,0,a)
typedef long long ll;
typedef pair<int,int> PA;

const int MAX_N=3e5,MAX_M=1e5;

int N,M;
PA item[MAX_N];

int bit[MAX_M+1];

void add(int i,int x){
	while(i<=M){
		bit[i]+=x;
		i+=i&(-i);
	}
}

int query(int i){
	int res=0;
	while(i){
		res+=bit[i];
		i-=i&(-i);
	}
	return res;
}

int main(){
	scanf("%d %d",&N,&M);
	REP(i,N){
		int L,R;
		scanf("%d %d",&L,&R);
		item[i]=make_pair(L,R);
	}
	sort(item,item+N,[](const PA &a,const PA &b){
		return a.second-a.first<b.second-b.first;
	});
	auto ite=item;
	FOR(d,1,M+1){
		while(ite!=item+N && ite->second-ite->first+1<d){
			add(ite->first,1);
			add(ite->second+1,-1);
			ite++;
		}
		int ans=N-(ite-item);
		for(int x=d;x<=M;x+=d){
			ans+=query(x);
		}
		printf("%d\n",ans);
	}
	return 0;
}
