var
n,s,i,t,min,tem,q:longint;
boo:boolean;
a,b:array[0..1000010] of longint;
begin
readln(n,s);
while n<>0 do
begin
boo:=true;
readln(s);
for i:=1 to n do
readln(a[i],b[i]);
t:=n;
while (t>0)and(boo=true) do
begin
min:=1000000000;
for i:=1 to t do
if b[i]<min then
begin
min:=b[i];
q:=i;
end;
tem:=b[q];
b[q]:=b[t-1];
b[t-1]:=tem;
tem:=a[q];
a[q]:=a[t-1];
a[t-1]:=tem;
if (s<b[t-1]) then begin writeln('NO'); boo:=false; end
else s:=s+a[t-1];
t:=t-1;
end;
if t=0 then writeln('YES');
read(n);
end;
end.
dmFyCgluLHMsaSx0LG1pbix0ZW0scTpsb25naW50OwoJYm9vOmJvb2xlYW47CglhLGI6YXJyYXlbMC4uMTAwMDAxMF0gb2YgbG9uZ2ludDsKCmJlZ2luCglyZWFkbG4obixzKTsKCXdoaWxlIG48PjAgZG8KCWJlZ2luCgkJYm9vOj10cnVlOwoJCXJlYWRsbihzKTsKCQlmb3IgaTo9MSB0byBuIGRvCgkJcmVhZGxuKGFbaV0sYltpXSk7CgkJdDo9bjsKCQl3aGlsZSAodD4wKWFuZChib289dHJ1ZSkgZG8KCQliZWdpbgoJCQltaW46PTEwMDAwMDAwMDA7CgkJCWZvciBpOj0xIHRvIHQgZG8KCQkJaWYgYltpXTxtaW4gdGhlbgoJCQliZWdpbgoJCQkJbWluOj1iW2ldOwoJCQkJcTo9aTsKCQkJZW5kOwoJCQl0ZW06PWJbcV07CgkJCWJbcV06PWJbdC0xXTsKCQkJYlt0LTFdOj10ZW07CgkJCXRlbTo9YVtxXTsKCQkJYVtxXTo9YVt0LTFdOwoJCQlhW3QtMV06PXRlbTsKCQkJaWYgKHM8Ylt0LTFdKSB0aGVuIGJlZ2luIHdyaXRlbG4oJ05PJyk7IGJvbzo9ZmFsc2U7IGVuZAoJCQllbHNlIHM6PXMrYVt0LTFdOwoJCQl0Oj10LTE7CgkJZW5kOwoJCWlmIHQ9MCB0aGVuIHdyaXRlbG4oJ1lFUycpOwoJCXJlYWQobik7CgllbmQ7CmVuZC4=