from typing import List
import ast
class Solution:
def maxTaxiEarnings(self, n: int, rides: List[List[int]]) -> int:
rides.sort()
dp = [0] * (n + 1)
for i in range(n - 1, -1, -1):
dp[i] = dp[i + 1]
while rides and rides[-1][0] == i:
start, end, tip = rides.pop()
dp[i] = max(dp[i], dp[end] + end - start + tip)
return dp[0]
lines = []
while True:
try:
line = input().strip()
if line:
lines.append(line)
except EOFError:
break
sol = Solution()
for i in range(0, len(lines), 2):
n = int(lines[i])
rides = ast.literal_eval(lines[i + 1])
print(sol.maxTaxiEarnings(n, rides))
ZnJvbSB0eXBpbmcgaW1wb3J0IExpc3QKaW1wb3J0IGFzdAoKY2xhc3MgU29sdXRpb246CiAgICBkZWYgbWF4VGF4aUVhcm5pbmdzKHNlbGYsIG46IGludCwgcmlkZXM6IExpc3RbTGlzdFtpbnRdXSkgLT4gaW50OgogICAgICAgIHJpZGVzLnNvcnQoKQogICAgICAgIGRwID0gWzBdICogKG4gKyAxKQoKICAgICAgICBmb3IgaSBpbiByYW5nZShuIC0gMSwgLTEsIC0xKToKICAgICAgICAgICAgZHBbaV0gPSBkcFtpICsgMV0KCiAgICAgICAgICAgIHdoaWxlIHJpZGVzIGFuZCByaWRlc1stMV1bMF0gPT0gaToKICAgICAgICAgICAgICAgIHN0YXJ0LCBlbmQsIHRpcCA9IHJpZGVzLnBvcCgpCiAgICAgICAgICAgICAgICBkcFtpXSA9IG1heChkcFtpXSwgZHBbZW5kXSArIGVuZCAtIHN0YXJ0ICsgdGlwKQoKICAgICAgICByZXR1cm4gZHBbMF0KCgpsaW5lcyA9IFtdCndoaWxlIFRydWU6CiAgICB0cnk6CiAgICAgICAgbGluZSA9IGlucHV0KCkuc3RyaXAoKQogICAgICAgIGlmIGxpbmU6CiAgICAgICAgICAgIGxpbmVzLmFwcGVuZChsaW5lKQogICAgZXhjZXB0IEVPRkVycm9yOgogICAgICAgIGJyZWFrCgpzb2wgPSBTb2x1dGlvbigpCgpmb3IgaSBpbiByYW5nZSgwLCBsZW4obGluZXMpLCAyKToKICAgIG4gPSBpbnQobGluZXNbaV0pCiAgICByaWRlcyA9IGFzdC5saXRlcmFsX2V2YWwobGluZXNbaSArIDFdKQogICAgcHJpbnQoc29sLm1heFRheGlFYXJuaW5ncyhuLCByaWRlcykp
NQpbWzIsNSw0XSxbMSw1LDFdXQoyMApbWzEsNiwxXSxbMywxMCwyXSxbMTAsMTIsM10sWzExLDEyLDJdLFsxMiwxNSwyXSxbMTMsMTgsMV1d
5
[[2,5,4],[1,5,1]]
20
[[1,6,1],[3,10,2],[10,12,3],[11,12,2],[12,15,2],[13,18,1]]