N,X,Y = map(int,input().split()) #DP[i][メニュー枠][容量] DP = [[[-10**18]*(Y+1) for _ in range(X+1)] for _ in range(N+1)] DP[0][0][0] = 0 ans = 0 for i in range(N): A,B,C = map(int,input().split()) for j in range(X): for k in range(Y): if j+A <= X and k+B <= Y: DP[i+1][j+A][k+B] = max(DP[i+1][j+A][k+B],DP[i][j][k]+C) ans = max(ans,DP[i+1][j+A][k+B]) DP[i+1][j][k] = max(DP[i][j][k],DP[i+1][j][k]) print(ans)