#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
typedef long long ll;
inline int rd(){
	char c=getchar();int x=0,flag=1;
	for(;c<'0'||c>'9';c=getchar())if(c=='-')flag=-1;
	for(;c>='0'&&c<='9';c=getchar())x=x*10+c-'0';
	return x*flag;
}
struct shop{
	int l,r,len;
	friend bool operator < (shop a,shop b){
		return a.len>b.len;
	}
}a[300010];
int n,m,st[100010]={0};
inline void add(int x,int v){
	for(;x<=m;x+=x&-x)
		st[x]+=v;
	return;
}
inline int ask(int x){
	int res=0;
	for(;x;x-=x&-x)
		res+=st[x];
	return res;
}
int main(){
	n=rd();m=rd();
	for(int i=1;i<=n;i++){
		int l=rd(),r=rd();
		a[i]=(shop){l,r,r-l+1};
	}
	sort(a+1,a+n+1);
	for(int i=1,j=n;i<=m;i++){
		for(;j&&a[j].len<i;j--)
			add(a[j].l,1),add(a[j].r+1,-1);
		int ans=j;
		for(int k=i;k<=m;k+=i)
			ans+=ask(k);
		printf("%d\n",ans);
	}
	return 0;
}