import heapq n = int(input()) a, b, c = [], [], [] for i in range(n): u, v, w = input().split() a.append(int(u)) b.append(int(v)) c.append(int(w)) def select(i): m = next(i) yield m for x in i: if x[1] > m[1]: m = x yield m cd1, cd2 = [], [(0, 0)] for i in range(n): cd1, cd2 = cd2, list(select(heapq.merge( ((af + b[i], pr - c[i]) for af, pr in cd1), ((af, pr + a[i]) for af, pr in cd2), reverse = True))) print(max(af for af, pr in cd2 if pr >= 0))