#include<bits/stdc++.h>
using namespace std;
struct Section{
	int l,r;
	bool operator<(const Section& rhs) const{
		return r-l+1<rhs.r-rhs.l+1;
	}
} sec[300005];
int N,M,bit[100005];
inline void modify(int pos,int add){
	for(;pos<=M+1;pos+=pos&-pos)
		bit[pos]+=add;
}
inline int query(int pos){
	int res=0;
	for(;pos;pos-=pos&-pos)
		res+=bit[pos];
	return res;
}
int main(){
	scanf("%d%d",&N,&M);
	for(int i=0;i<N;i++)
		scanf("%d%d",&sec[i].l,&sec[i].r);
	sort(sec,sec+N);
	int cur=0;
	for(int i=1;i<=M;i++){
		while(cur<N && sec[cur].r-sec[cur].l+1<i){
			modify(sec[cur].l,1);
			modify(sec[cur].r+1,-1);
			cur++;
		}
		int ans=N-cur;
		for(int j=i;j<=M;j+=i)
			ans+=query(j);
		printf("%d\n",ans);
	}
	return 0;
}