#include<bits/stdc++.h>
#define N 600005
using namespace std;
int n,m,b[N];
struct T
{
	int x,y,l;
}a[N];
bool cmp(T x,T y)
{
	return x.l<y.l;
}

void mdy(int k,int l,int r,int x,int y)
{
	if (x<=l&&r<=y)
	{
		b[k]++;
		return;
	}
	int mid=l+r>>1;
	if (x<=mid) mdy(k<<1,l,mid,x,y);
	if (y>mid) mdy(k<<1|1,mid+1,r,x,y);
}
int qry(int k,int l,int r,int x)
{
	if (l==r) return b[k];
	int mid=l+r>>1;
	if (x<=mid) return b[k]+qry(k<<1,l,mid,x);
	return b[k]+qry(k<<1|1,mid+1,r,x);
}
int main()
{
	scanf("%d%d",&n,&m);
	for (int i=1;i<=n;i++)
	{
		scanf("%d%d",&a[i].x,&a[i].y);
		a[i].l=a[i].y-a[i].x+1;
	}
	sort(a+1,a+n+1,cmp);
	
	for (int i=1,j=1;i<=m;i++)
	{
		while(j<=n&&a[j].l<i)
		{
			mdy(1,1,m,a[j].x,a[j].y);
			j++;
		}
		int Ans=n-j+1;
		for (int j=1;i*j<=m;j++)
			Ans+=qry(1,1,m,j*i);
		printf("%d\n",Ans);
	}
}