#include<bits/stdc++.h>
using namespace std;
const int MAXN=1e6+10;
int num,ans;
struct node{
int tall,qi;
}apple[10000000];
bool cmp(node a,node b)
{
if(a.qi==b.qi) return a.tall<b.tall;
return a.qi<b.qi;
}
int main()
{
int n,s;
cin>>n>>s;
int a,b;
cin>>a>>b;
a+=b;
for (int i=1;i<=n;i++)
{
cin>>apple[i].tall>>apple[i].qi;
}
sort(apple+1,apple+n,cmp);
for (int i=1;i<=n;i++)
{
if(apple[i].tall>a) continue;
if(s>=apple[i].qi)
{
s-=apple[i].qi;
}
else
{
break;
}
ans++;
}
cout<<ans<<endl;
return 0;
}