///
#include <iostream>
using namespace std;
int N, L, M, S;
int n[250]; //空间站坐标
int s[250]; //空间站花费
int flag;
void dfs(int num,int left,int l) //第几个空间站 剩多少银河币 还能走多远
{
if (l >= L)
{
flag = 1;
return;
}
for (int i = num+1; i <= N; i++) //注意不能往前递归
{
if (left >= s[i] && l >= n[i]) //钱够且能到下一空间站
{
dfs(i, left - s[i], M + n[i]);
}
}
}
int main()
{
int i;
cin >> N >> L >> M >> S;
for (i = 1; i <= N; i++)
{
cin >> n[i] >> s[i];
}
dfs(0, S, M);
if (flag)
cout << "Yes";
else
cout << "No";
}