N, X, Y = map(int, input().split()) dp = [[[0] * (Y+1) for _ in range(X+1)] for _ in range(N+1)] for i in range(N): A, B, C = map(int, input().split()) for j in range(X+1): for k in range(Y+1): if j - A < 0 or k - B < 0: dp[i+1][j][k] = dp[i][j][k] continue dp[i+1][j][k] = max(dp[i][j][k], dp[i][j-A][k-B] + C) ans = 0 for l in range(X+1): ans = max(ans, max(dp[-1][l])) print(ans)