import java.util.PriorityQueue;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
long s1=System.currentTimeMillis();
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
int s=sc.nextInt();
int a=sc.nextInt();
int b=sc.nextInt();
int[][] arr=new int[n][n];
for(int i=0;i<n;i++)
{
arr[i][0]=sc.nextInt();
arr[i][1]=sc.nextInt();
}
PriorityQueue<Integer> pr=new PriorityQueue<>();
for(int i=0;i<n;i++)
{
if(arr[i][0]<=a+b)
{
pr.add(arr[i][1]);
}
}
int sum=0;
int count=0;
while(sum<s)
{
int t=pr.poll();
sum+=t;
count++;
}
if(sum>s)
{
System.out.println(count-1);
}else {
System.out.println(count);
}
long s2=System.currentTimeMillis();
System.out.println(s1);
System.out.println(s2);
System.out.println(s2-s1);
}
}