#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=5e5+10;
int li[N],ri[N];
int d[N][20];
signed main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
int n,m; cin>>n >>m;
vector<pair<int,int>> v;
for(int i=1;i<=n;i++){
int l,r; cin>>l >>r;
if(l>r) r+=m;
v.push_back({l,r});
}
sort(v.begin(),v.end());
int id=0;
int mx=INT_MIN;
for(auto [l,r]:v){
if(r<=mx) continue;
li[id]=l,ri[id]=r;
id++;
mx=r;
}
// for(int i=0;i<id;i++){
// cout<<li[i] <<" " <<ri[i] <<"\n";
// }
for(int i=0;i<id;i++){
int fi=lower_bound(ri,ri+id,li[i])-ri;
d[i][0]=fi;
//cout<<"pt";
//cout<<i <<" " <<fi <<"\n";
}
for(int i=1;i<20;i++) for(int j=0;j<id;j++) d[j][i]=d[d[j][i-1]][i-1];
int ans=INT_MAX;
for(int i=0;i<id;i++){
int st=ri[i],now=i,cnt=0;
//cout<<st <<" " <<ri[i] <<" ";
for(int j=19;j>=0;j--){
int cd=d[now][j];
if(st-li[cd]+1LL<m) now=cd,cnt+=(1<<j);
}
//cout<<st <<" " <<li[i] <<"\n";
//cout<<i <<" " <<cnt <<" " <<li[now] <<" " <<st <<"\n";
cnt++,now=d[now][0];
if(st-li[now]+1LL>=m) ans=min(ans,cnt+1);
}
if(ans==INT_MAX) cout<<-1;
else cout<<ans;
}