#include<bits/stdc++.h>
using namespace std;
int c[200010],n,m;
vector<int> vec[200010];
void add(int s,int w){while (s<=m) {c[s]+=w;s+=s&(-s);}}
int sum(int s){int ans=0;while (s) {ans+=c[s];s-=s&(-s);}return ans;}
int main()
{
	scanf("%d%d",&n,&m);
	for (int i=1;i<=n;i++)
	{
		int l,r;scanf("%d%d",&l,&r);
		vec[r-l+1].push_back(l);
	}
	int now=n;
	for (int i=1;i<=m;i++)
	{
		now-=vec[i-1].size();int ans=now;
		for (int k=0;k<vec[i-1].size();k++)
		{
			add(vec[i-1][k],1);
			add(vec[i-1][k]+i-1,-1);
		}
		for (int j=i;j<=m;j+=i) ans+=sum(j);
		printf("%d\n",ans);
	}
} 