rt,
#include<bits/stdc++.h>
using namespace std;
set<long long> s;
struct ppp{
int t;
long long x;
}a[100005];
int n;
long long m,ans=0,cnt=0,p;
bool cmp(ppp aa,ppp bb){
return aa.x<bb.x;
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>a[i].x;
cin>>a[i].t;
}
set<long long>::iterator it;
sort(a+1,a+n+1,cmp);
for(int i=1;i<=n;i++){
if(m-a[i].x+a[i-1].x-a[i].t>=0){
m-=(a[i].x-a[i-1].x+a[i].t);
cnt++;
s.insert((long long)a[i].x-a[i-1].x+a[i].t);
}
else{
it=s.end()--;
// cout<<*it;
if(a[i].x-a[i-1].x+a[i].t<*it){
m+=(*it);
s.erase(it);
m-=(a[i].x-a[i-1].x+a[i].t);
s.insert((long long)a[i].x-a[i-1].x+a[i].t);
}
}
ans=max(ans,cnt);
}
cout<<ans;
return 0;
}