#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; int N,X,Y; long long dp[2][301][301]; void solve() { cin >> N >> X >> Y; int cur = 0; for(int j = 0;j <= X;j++)for(int k = 0;k <= Y;k++) dp[cur][j][k] = -(long long)1e18; dp[cur][0][0] = 0; for(int i = 0;i < N;i++) { int nxt = 1-cur; for(int j = 0;j <= X;j++)for(int k = 0;k <= Y;k++) dp[nxt][j][k] = -(long long)1e18; int A,B,C; cin >> A >> B >> C; for(int j = 0;j <= X;j++)for(int k = 0;k <= Y;k++) { dp[nxt][j][k] = max(dp[nxt][j][k],dp[cur][j][k]); if(j+A <= X && k+B <= Y) dp[nxt][j+A][k+B] = max(dp[nxt][j+A][k+B],dp[cur][j][k]+C); } swap(cur,nxt); } long long ans = 0; for(int j = 0;j <= X;j++)for(int k = 0;k <= Y;k++) ans = max(ans,dp[cur][j][k]); cout << ans << endl; } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int tt = 1; //cin >> tt; while(tt--) solve(); }