#include<bits/stdc++.h>
const int N=3e5+7;
int n,m;
struct pos{
	int x,y;
	bool operator<(const pos&w)const{return x>w.x;}
}ps[N];
int bit[N],as[N],bs[N];
void inc(int w){
	++bs[w];
	for(;w<=m;w+=w&-w)++bit[w];
}
int sum(int w){
	if(w>m)w=m;
	int s=0;
	for(;w;w-=w&-w)s+=bit[w];
	return s;
}
int main(){
	scanf("%d%d",&n,&m);
	for(int i=0;i<n;++i)scanf("%d%d",&ps[i].x,&ps[i].y);
	std::sort(ps,ps+n);
	for(int i=m,p=0;;--i){
		for(;p<n&&ps[p].x>i;inc(ps[p++].y));
		if(!i)break;
		for(int j=1;j*j<=i;++j)if(i%j==0){
			as[j]+=sum(i+j-1);
			if(j*j!=i)as[i/j]+=sum(i+i/j-1);
		}
	}
	for(int i=1,s=0;i<=m;++i){
		as[i]+=s;
		s+=bs[i];
	}
	for(int i=1;i<=m;++i)printf("%d\n",n-as[i]);
	return 0;
}