#include<cstdio>
#include<iostream>
#include<algorithm>
#include<queue>
using namespace std;
const int maxn = 1e6+5;
struct node{
int l,r,id;
friend bool operator < (node a,node b){
return a.l<b.l;
}
}a[maxn];
int f[maxn][20];
int ans[maxn];
int main(){
cin.tie(0);
ios::sync_with_stdio(false);
int n,m;
cin>>n>>m;
for(int i=1;i<=n;++i){
a[i].id=i;
cin>>a[i].l>>a[i].r;
if(a[i].l>a[i].r)a[i].r+=m;
}
sort(a+1,a+n+1);
for(int i=1;i<=n;++i){
a[i+n].id=a[i].id;
a[i+n].l=a[i].l+m;
a[i+n].r=a[i].r+m;
}
for(int i=1;i<=2*n;++i){
int y=i;
while(a[y].l<=a[i].r && y<=2*n)y++;
f[i][0]=--y;
}
for(int k=1;k<20;++k){
for(int j=1;j<=2*n;++j){
f[j][k]=f[f[j][k-1]][k-1];
}
}
for(int i=1;i<=n;++i){
int y=i;
int sum=1;
for(int j=19;j>=0;--j){
if(f[y][j]!=0 && a[f[y][j]].r<a[i].l+m)
sum+=(1<<j),y=f[y][j];
}
ans[a[i].id]=++sum;
}
for(int i=1;i<=n;++i){
cout<<ans[i]<<' ';
}
cout<<endl;
return 0;
}
悬一关谢谢