#include #include #include #include #include #include #include #include #include using namespace std; using ll = long long; #include int main(){ cin.tie(nullptr); ios::sync_with_stdio(false); int k,n; cin>>n>>k; vector l(n),r(n); for(int i = 0;i>l[i]>>r[i]; vector idx(n); for(int i = 0;i> use; for(int i = 0;i=l[ni]) continue; use.push_back(make_pair(l[ni],i)); } const int B = 40; vector> dp(n,vector(B+1,2e9)); for(int i = 0;i>j&1) continue; int nj = lower_bound(use.begin(),use.end(),make_pair(ni,(ll)-1)) - use.begin(); if(nj==use.size()) { ni = 2e9; break; } ni = use[nj].second; ni = dp[ni][j]; if(ni==2e9) break; } if(ni==2e9) continue; ans = min(ans,ni-l[idx[i]]); } if(ans==1e18) ans = -1; cout<