N, X, Y = map(int, input().split()) L = [list(map(int, input().split())) for _ in range(N)] DP = [[-1] * (X+1) for _ in range(Y+1)] DP[0][0] = 0 for i in range(N): nxt = [[-1] * (X+1) for _ in range(Y+1)] a, b, c = L[i] for x in range(X)[::-1]: if a + x > X: continue for y in range(Y)[::-1]: if b + y > Y: continue if DP[x][y] < 0: continue DP[a+x][b+y] = max(DP[a+x][b+y], DP[x][y] + c) ans = 0 for d in DP: ans = max(ans, max(d)) print(ans)