#include #include #include #include #include #include #include #include #include #include #include #include using namespace std; using ll = long long; int main(){ ll N, X, Y, ans=0; cin >> N >> X >> Y; vector A(N), B(N), C(N); for (int i=0; i> A[i] >> B[i] >> C[i]; vector>> dp(N+1, vector(X+1, vector(Y+1))); for (int i=1; i<=N; i++){ for (int j=0; j<=X; j++){ for (int k=0; k<=Y; k++){ dp[i][j][k] = max(dp[i-1][j][k], dp[i][j][k]); if (j-A[i-1]>=0 && k-B[i-1]>=0) dp[i][j][k] = max(dp[i][j][k], dp[i-1][j-A[i-1]][k-B[i-1]]+C[i-1]); } } } for (int j=0; j<=X; j++){ for (int k=0; k<=Y; k++) ans = max(ans, dp[N][j][k]); } cout << ans << endl; return 0; }