#include <bits/stdc++.h>
#define V vector
#define L(i,j,k) for(int i=(j);i<=(k);i++)
#define R(i,j,k) for(int i=(j);i>=(k);i--)
#define all(x) x.begin(),x.end()
#define sz(a) ((int)a.size())
#define pb push_back
using namespace std;
typedef long long ll;
using ii=pair<ll,ll>;
int main(){
int n,k;cin>>n>>k;
V<ii>s(n),h;
L(i,0,n-1){
cin>>s[i].first>>s[i].second;
h.pb({s[i].first,0});
h.pb({s[i].second,-1});
}
sort(all(h));
ll last=0;
map<ll,ll>pf;
L(i,0,sz(h)-1){
pf[h[i].first]=pf[last];
if(h[i].second==-1){
pf[h[i].first]--;
}else pf[h[i].first]++;
last=h[i].first;
}
ll ans=0;
L(i,0,n-1){
ll K=min(pf[s[i].first],pf[s[i].second]);
if(K>=k){
//~ cout<<K<<endl;
//~ cout<<s[i].first<<" "<<s[i].second<<endl;
ans=max(ans,s[i].second-s[i].first-1);
}
}
cout<<ans<<endl;
}