#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int n,m;
struct room{
ll pos;
int t;
}a[100005];
ll ans,akcnt,tim;
priority_queue<ll> q;
bool cmp(room aa,room bb){
return aa.pos<bb.pos;
}
int main()
{
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++){
scanf("%lld%d",&a[i].pos,&a[i].t);
}
sort(a+1,a+n+1,cmp);
for(int i=1;i<=n;i++){
akcnt++;
tim+=a[i].pos-a[i-1].pos;
tim+=a[i].t;
q.push(a[i].t);
while(tim>m&&!q.empty()){
akcnt--;
tim-=q.top();
q.pop();
}
if(tim>m) break;
ans=max(akcnt,ans);
}
printf("%lld\n",ans);
return 0;
}