#include <bits/stdc++.h>
using namespace std;
using pii = pair<int, int>;
using piii = pair<pair<int, int>, int>;
using ll = long long;
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  vector<pii> pos, neg;
  int n, r;
  cin >> n >> r;
  for (int i = 1, a, b; i <= n; ++i) {
    cin >> a >> b;
    if (b >= 0)
      pos.push_back({a, b});
    else
      neg.emplace_back(a + b, a);
  }
  sort(pos.begin(), pos.end());
  sort(neg.begin(), neg.end());
  reverse(neg.begin(), neg.end());
  int cnt = 0;
  for (auto p : pos) {
    if (r < p.first)
      break;
    else
      r += p.second, cnt++;
  }
  vector<int> dp(r + 1, -0x3f3f3f3f);
  dp[r] = cnt;
  for (auto p : neg) {
    int a = p.second, b = p.first - p.second;
    for (int i = max(a, -b); i <= r; ++i) dp[i + b] = max(dp[i + b], dp[i] + 1);
  }
  for (int i = 0; i <= r; ++i) cnt = max(cnt, dp[i]);
  cout << cnt << endl;
}
