#include<bits/stdc++.h>
#define ll long long
#define endl "\n"
using namespace std;
struct node{
int x,y;
}a[110],b[110];
bool cmp1(node a,node b){
return a.x<b.x;
}
bool cmp2(node a,node b){
return a.x+a.y>b.y+b.x;
}
int main()
{
#ifdef endl
cin.tie(0);
cout.tie(0);
ios::sync_with_stdio(0);
#endif
int n,m;
int k=0,t=0;
cin>>n>>m;
int x,y;
for(int i=0;i<n;i++){
cin>>x>>y;
if(y>=0){
a[k].x=x;
a[k].y=y;k++;
}
else{
b[t].x=x;
b[t].y=y;t++;
}
}
sort(a,a+k,cmp1);
sort(b,b+t,cmp2);
int i;
for(i=0;i<k;i++){
if(m<a[i].x){
cout<<"NO";
return 0;
}
m+=a[i].y;
}
for(i=0;i<t;i++){
if(m<b[i].x){
cout<<"NO";
return 0;
}
m+=b[i].y;
}
if(m>=0)cout<<"YES";
else cout<<"NO";
return 0;
}