#include<bits/stdc++.h>
using namespace std;
struct guan{
long long l,s;
}g[100010];
long long n,len,l,r,m;
bool pd(long long x){
long long ans=0;
for(int i=1;i<=n;i++)
if(g[i].s<=x && ans>=g[i].l-(x-g[i].s)-1) ans=max(ans,g[i].l+(x-g[i].s));
return ans>=len;
}
int main(){
ios::sync_with_stdio(false);
cin.tie(0);
cin>>n>>len;
for(long long i=1;i<=n;i++){
cin>>g[i].l>>g[i].s;
l=max(l,g[i].s);
}
r=l+len;
while(l<=r){
m=l+r>>1;
if(pd(m)) r=m-1;
else l=m+1;
}
cout<<r+1;
return 0;
}