#include<bits/stdc++.h>
#define int long long
#define ll long long
#define ld long double
#define _1 first
#define _2 second
#define yes cout<<"Yes\n"
#define nah cout<<"No\n"
#define FFF ios_base::sync_with_stdio(0);cin.tie(0);
#define ipr pair<int,int>
#define ret return
#define intt int32_t
#define mid ((l+r)/2)
#define pb push_back
#define lll __int128
using namespace std;
int tst, ts;
intt mo = 0*(998244353)+(1e9+7)*1, dx[] = {0, -1, -1, 0}, dy[] = {1, 1, 2, 0};
int mul( int x, int y ) {
x%=mo;y%=mo;
ret (int) ( (ll) x * y % mo);
ret x*y;
}
int pwo( int x, ll y ) {
int res = 1;
for( int i = 63; i + 1; i-- )
res = mul( res, mul(res , ( ( 1ll << i )&y ? x : 1 )) );
ret res;
}
int dvii( int x, int y ) {
ret mul( x, pwo(y,mo-2) );
}
int oo( char x , char y) {
ret ( int )x - y;
}
int lgg( int x, int y ) {
int u = 0;
while( x ) {
u++;
x /= y;
}
ret u;
}//g++ -Wall -o "%e" "%f" && "./%e"
int mun( int x, int y ) {
while( x < y )x += mo;
ret ( x - y ) % mo;
}
int add( int x, int y ) {
ret x + y - ( mo * ( x + y >= mo ) );
ret x + y;
}
int lcm( int x, int y ) {
if(x*y==0)ret max(x,y);
int o=__gcd(x,y);
x/=o;
ret x*y;
}
#define endl '\n';
#define nl no*2
#define nr no*2+1
const int M =5e4+7, N = 2e5+7, P = 1e12, inf = 1e18+7 ;
int n,m,mx[N],up[20][N];
ipr a[N];
void solve(){
cin>>n>>m;
for(int i=0;i<n;i++){
cin>>a[i]._1>>a[i]._2;
if(a[i]._2<a[i]._1)
a[i]._2+=m;
}
sort(a,a+n);
mx[0]=0;
for(int i=1;i<n;i++)
mx[i]=(a[i]._2>a[mx[i-1]]._2?i:mx[i-1]);
for(int i=0;i<n;i++){
int l=0,r=n;
while(r-l>1){
if(a[mid]._1<=a[i]._2)
l=mid;
else
r=mid;
}
if(a[mx[l]]._2<=a[i]._2)
up[0][i]=n;
else
up[0][i]=mx[l];
// cout<<up[0][i]<<endl;
}
up[0][n]=n;
for(int j=1;j<20;j++)
for(int i=0;i<=n;i++)
up[j][i]=up[j-1][up[j-1][i]];
int ans=inf;
for(int i=0;i<n;i++){
int u=i,o=1;
//cout<<a[i]._1<<" "<<a[i]._2<<endl;
for(int j=19;j+1;j--){
int p=up[j][u];
if(a[p]._2-m>=a[i]._1||p==n)
continue;
u=p,o+=(1ll<<j);
//cout<<u<<endl;
}
for(int j=0;j<20;j++){
int p=up[j][u];
if(a[p]._2-m>=a[i]._1&&p!=n){
o+=(1ll<<j);
// cout<<u<<" "<<j<<endl;
ans=min(ans,o);
break;
}
}
}
cout<<(ans==inf?-1:ans)<<endl;
}
intt main() {
FFF
//freopen("7.in", "r", stdin);
//freopen("out.txt", "w", stdout);
tst = 1;
//cin >> tst;
for( ts = 1; ts <= tst; ts++ ){
solve();
}
}