#include<iostream>
#include<algorithm>
using namespace std;
int n,s,a,b,h,cnt;
struct apple{//用结构体表示每一个苹果,方便看
int x,y;
}apples[114514];
bool cmp(apple a,apple b){//将力气作为排序依据,确保最省力
return a.y < b.y;
}
signed main(){
cin>>n>>s;
cin>>a>>b;
h = a + b;//h表示能够到的高度
for(int i = 0;i < n;i ++){
cin>>apples[i].x>>apples[i].y;
}
sort(apples,apples + n,cmp);//排序
for(int i = 0;i < n;i ++){//统计
if(apples[i].x < h){//能够到
if(s > 0){//还有力气
if(s >= apples[i].y){//力气足够
s -= apples[i].y;
cnt ++;
}
}else{//没力气了,退出统计
break;
}
}
}
cout<<cnt;//输出
return 0;
}