N, X, Y = map(int, input().split()) A = [list(map(int, input().split())) for _ in range(N)] INF = 10**18 dp = [[-INF]*(Y+1) for _ in range(X+1)] dp[0][0] = 0 for a, b, c in A: ndp = [[v for v in d] for d in dp] for i in range(X+1): for j in range(Y+1): if i+a <= X and j+b <= Y: ndp[i+a][j+b] = max(ndp[i+a][j+b], dp[i][j]+c) dp[i][j] = max(dp[i][j], ndp[i][j]) print(max(max(a) for a in dp))