#include<bits/stdc++.h>
using namespace std;
struct apple{
int x,y;
}z[5005];
bool cmp_1(apple &a,apple &b)
{
return a.x<b.x;
}
bool cmp_2(apple &a,apple &b)
{
return a.y<b.y;
}
int main()
{
int n,s,a,b,ans=0,t=0;
cin>>n>>s>>a>>b;
for(int i=1;i<=n;i++)
cin>>z[i].x>>z[i].y;
sort(z+1,z+n+1,cmp_1);
for(int i=1;i<=n;i++)
{
if(z[i].x>a+b)
break;
else
++t;
}
sort(z+1,z+t+1,cmp_2);
for(int i=1;i<=t;i++)
{
if(s<0)
break;
ans++;
s-=z[i].y;
}
cout<<ans-1;
return 0;
}