n = int(input()) wsv = [list(map(int, input().split())) + [1] for _ in range(n)] wsv.sort(key = lambda x: x[0] + x[1]) max_s = 0 dp = [0] for w, s, v in wsv: dp2 = [0] * (s + w + 1) l = len(dp) for i in range(1, s + w + 1): dp2[i] = dp2[i - 1] if i < l: dp2[i] = max(dp2[i], dp[i]) if i >= w and i - w < l: dp2[i] = max(dp2[i], dp[i - w] + v) dp = dp2.copy() print(dp[-1])