#include <bits/stdc++.h>
using namespace std;
const int maxn = 3e4 + 5;
struct node {
  int a, b;
};
node w[10005];
bool cmp(node a, node b) {
  if (a.b >= 0 && b.b >= 0) {
    if (a.a != b.a) return a.a < b.a;
    return a.b > b.b;
  } else if (a.b < 0 && b.b < 0) {
    return a.a + a.b > b.a + b.b;
  } else
    return a.b > b.b;
}
int main() {
  int n, r;
  scanf("%d %d", &n, &r);
  for (int i = 1; i <= n; ++i) scanf("%d %d", &w[i].a, &w[i].b);
  sort(w + 1, w + n + 1, cmp);
  int ju = 1;
  for (int i = 1; i <= n; ++i) {
    if (r >= w[i].a)
      r += w[i].b;
    else
      ju = 0;
    if (r < 0) ju = 0;
  }
  if (ju)
    printf("YES\n");
  else
    printf("NO\n");
}
