#include #include #include #include #include #include #include #include #include #include #include using namespace std; using namespace atcoder; typedef long long ll; #define rep(i,n) for (int i = 0; i < int(n);i++) ll dp[301][301][301]; int main(){ int n,x,y; cin >> n >> x >> y; for (int i = 0; i <= n;i++){ for (int j = 0; j <= x;j++){ for (int k = 0; k <= y;k++){ dp[i][j][k] = -1; } } } vector a(n); vector b(n); vector c(n); rep(i,n){ cin >> a[i] >> b[i] >> c[i]; } dp[0][0][0] = 0; for (int i = 0; i < n;i++){ for (int j = 0; j <= x;j++){ for (int k = 0; k <= y;k++){ if (dp[i][j][k] == -1) continue; if (j+a[i] <= x && k+b[i] <= y) dp[i+1][j+a[i]][k+b[i]] = max(dp[i][j][k]+c[i],dp[i+1][j+a[i]][k+b[i]]); dp[i+1][j][k] = max(dp[i+1][j][k],dp[i][j][k]); } } } ll ans = 0; 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; }