#include<bits/stdc++.h>
using namespace std;
priority_queue<long long,vector<long long>,greater<long long> >p;
priority_queue<long long,vector<long long>,greater<long long> >ti;
priority_queue<long long,vector<long long>,less<long long> >ch;
long long tim,pos[100005],t[100005],ma,dis,num,ans,n;
signed main()
{
cin>>n>>tim;
for(long long i=1;i<=n;i++)
{
long long m1,m2;
cin>>m1>>m2;
p.push(m1);
ti.push(m2);
}
for(long long i=1;i<=n;i++)
{
pos[i]=p.top();
p.pop();
t[i]=ti.top();
ti.pop();
}
for(long long i=1;i<=n;i++)
{
if(ch.empty())
{
ma=-1;
}
else ma=ch.top();
while(tim<dis and !ch.empty())
{
tim+=ch.top();
num--;
ch.pop();
}
if(tim<dis)break;
tim-=dis;
if(ma>t[i])
{
while(tim<t[i] and !ch.empty())
{
tim+=ch.top();
num--;
ch.pop();
}
}
if(tim>t[i] and (ma==-1 or ma>t[i]))
{
tim-=t[i];
num++;
if(num>ans)ans=num;
}
dis=pos[i+1]-pos[i];
}
cout<<ans;
return 0;
}