func_code_string: #include <bits/stdc++.h>   using namespace std;   const int N = 150;   const int M = 6e4 + 5;   int n, m;   struct Node {     int a, b;   } s[N];   bool cmp(Node a, Node b) {     if (a.b > 0 && b.b < 0) return 1;     if (a.b < 0 && b.b > 0) return 0;     if (a.b > 0 && b.b > 0) return a.a < b.a;     return a.a + a.b > b.a + b.b;   }   int dp[N][M];   int main() {     cin >> n >> m;     memset(dp, 0, sizeof dp);     for (int i = 1; i <= n; i++) cin >> s[i].a >> s[i].b;     sort(s + 1, s + 1 + n, cmp);     int ans = 0;     dp[0][m] = 1;     for (int i = 1; i <= n; i++) {       for (int j = 0; j < M; j++) {         dp[i][j] = max(dp[i][j], dp[i - 1][j]);         if (j - s[i].b >= 0 && j - s[i].b < M && dp[i - 1][j - s[i].b] &&             j - s[i].b >= s[i].a)           dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - s[i].b] + 1);         ans = max(ans, dp[i][j]);       }     }     cout << ans - 1 << endl;   }   