def solve(N, X, Y, A, B, C): ans = [[[-1] * (Y + 1) for _ in range(X + 1)] for _ in range(N + 1)] ans[0][0][0] = 0 for i in range(N): for s in range(X + 1): for t in range(Y + 1): if ans[i][s][t] == -1: continue ans[i+1][s][t] = max(ans[i][s][t], ans[i+1][s][t]) if s + A[i] > X: continue if t + B[i] > Y: continue ans[i+1][s+A[i]][t+B[i]] = max(ans[i][s][t] + C[i], ans[i+1][s+A[i]][t+B[i]]) for s in range(X + 1): for t in range(Y + 1): if ans[N-1][s][t] == -1: continue ans[N][s][t] = max(ans[N-1][s][t], ans[N][s][t]) return max(max(max(v) for v in m) for m in ans) N, X, Y = [int(x) for x in input().split()] A = [] B = [] C = [] for _ in range(N): ai, bi, ci = [int(x) for x in input().split()] A.append(ai) B.append(bi) C.append(ci) print(solve(N, X, Y, A, B, C))