#include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long ll; int main() { int N, X, Y; cin >> N >> X >> Y; int A[N]; int B[N]; ll C[N]; for (int i = 0; i < N; ++i) { cin >> A[i] >> B[i] >> C[i]; } ll dp[X + 1][Y + 1]; memset(dp, -1, sizeof(dp)); dp[0][0] = 0; ll ans = 0; for (int i = 0; i < N; ++i) { int a = A[i]; int b = B[i]; ll c = C[i]; for (int x = X - a; x >= 0; --x) { int nx = x + a; for (int y = Y - b; y >= 0; --y) { int ny = y + b; if (dp[x][y] == -1) continue; dp[nx][ny] = max(dp[nx][ny], dp[x][y] + c); ans = max(ans, dp[nx][ny]); } } } cout << ans << endl; return 0; }