#include using namespace std; using ll = long long; #define rep(i, n) for (int i = 0; i < (int)(n); i++) #define oke cout << "Yes" << '\n'; #define dame cout << "No" << '\n'; #define all(a) a.begin(), a.end() #define rall(a) a.rbegin(), a.rend() using Hai2 = vector>; using HaiW = vector>>; using HaiB = vector>; using Hai3 = vector>>; int main() { cout << fixed << setprecision(15); ll N,A,B; cin>>N>>A>>B; vectorX(N),Y(N); rep(i,N){ cin>>X[i]>>Y[i]; } Hai3 DP(N+1,Hai2(A+1,vector(N+1,1e18))); DP[0][0][0]=0; rep(i,N){ rep(j,A+1){ rep(k,N){ DP[i+1][j][k]=min(DP[i][j][k],DP[i+1][j][k]); if(j+X[i]<=A){ DP[i+1][j+X[i]][k+1]=min(DP[i+1][j+X[i]][k+1],DP[i][j][k]+Y[i]); } } } } ll ans=0; rep(i,N+1){ rep(j,A+1){ if(DP[N][j][i]<=B){ ans=max(ans,(ll)i); } } } cout<