#include<bits/stdc++.h>
using namespace std;
int n,k,f[505][105];
struct node{
int x,y;
}a[505];
int main(){
cin>>n>>k;
for(int i=0;i<n;i++){
cin>>a[i].x>>a[i].y;
}
sort(a,a+n);
for(int i=0;i<n;i++){
for(int j=0;j<=k;j++){
f[i][j]=j+1;
}
}
for(int i=1;i<n;i++){
for(int j=i;j>1;j--){
if(a[j].y>a[i].y){
continue;
}
int d=a[i].x-a[j].x+a[i].y-a[j].y-1;
for(int p=d;p<=k;p++){
f[i][p]=max(f[i][p],f[j][p-d]+d+1);
}
}
}
int ans=0;
for(int i=1;i<=n;i++){
ans=max(ans,f[i][k]);
}
cout<<ans;
return 0;
}