#include using namespace std; #define st first #define nd second #define pb push_back #define sz(x) (int)(x).size() #define ll long long ll mod=1000000007; int inf=1000000007; ll infl=1000000000000000007; int seg[4*600007]; int lazy[4*600007]; int pot=1; void push(int v,int sz) { if(lazy[v]!=0) { seg[2*v]=sz/2*lazy[v]; lazy[2*v]=lazy[v]; seg[2*v+1]=sz/2*lazy[v]; lazy[2*v+1]=lazy[v]; } lazy[v]=0; } void ins(int u,int a,int b,int l,int r,int v) { if(a<=l&&b>=r) { lazy[u]=v; seg[u]=(r-l+1)*v; return ; } if(l>b||r=r) return seg[u]; if(l>b||rmapa; int l[100007]; int r[100007]; int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n,h,ans=2; cin>>n>>h; setS; S.insert(1); S.insert(h); for(int i=1;i<=n;i++) { cin>>l[i]>>r[i]; l[i]++; if(l[i]!=h) S.insert(l[i]+1); if(l[i]!=1) S.insert(l[i]-1); if(r[i]!=h) S.insert(r[i]+1); if(r[i]!=1) S.insert(r[i]-1); S.insert(l[i]); S.insert(r[i]); } int it=0; mapa.reserve(sz(S)+2); for(auto x:S) mapa[x]=++it; for(int i=1;i<=n;i++) { l[i]=mapa[l[i]]; r[i]=mapa[r[i]]; } while(pot