# 課題12c 重み付き区間スケジューリング(最適解の計算)
n = int(input())
jobs = []
for i in range(1, n + 1):
s, f, v = map(int, input().split())
jobs.append((i, s, f, v)) # (元番号, 開始, 終了, 重み)
# 終了時刻 f で安定ソート
jobs.sort(key=lambda x: x[2])
# q(i) を計算
q = [0] * (n + 1)
for i in range(1, n + 1):
si = jobs[i - 1][1]
qi = 0
for j in range(i - 1, 0, -1):
if jobs[j - 1][2] <= si:
qi = j
break
q[i] = qi
# OPT を計算
OPT = [0] * (n + 1)
for i in range(1, n + 1):
value = jobs[i - 1][3]
OPT[i] = max(OPT[i - 1], OPT[q[i]] + value)
# 出力(形式厳守)
for i in range(1, n + 1):
print(f"opt {i} = {OPT[i]}")
IyDoqrLpoYwxMmMg6YeN44G/5LuY44GN5Yy66ZaT44K544Kx44K444Ol44O844Oq44Oz44Kw77yI5pyA6YGp6Kej44Gu6KiI566X77yJCgpuID0gaW50KGlucHV0KCkpCgpqb2JzID0gW10KZm9yIGkgaW4gcmFuZ2UoMSwgbiArIDEpOgogICAgcywgZiwgdiA9IG1hcChpbnQsIGlucHV0KCkuc3BsaXQoKSkKICAgIGpvYnMuYXBwZW5kKChpLCBzLCBmLCB2KSkgICMgKOWFg+eVquWPtywg6ZaL5aeLLCDntYLkuoYsIOmHjeOBvykKCiMg57WC5LqG5pmC5Yi7IGYg44Gn5a6J5a6a44K944O844OICmpvYnMuc29ydChrZXk9bGFtYmRhIHg6IHhbMl0pCgojIHEoaSkg44KS6KiI566XCnEgPSBbMF0gKiAobiArIDEpCmZvciBpIGluIHJhbmdlKDEsIG4gKyAxKToKICAgIHNpID0gam9ic1tpIC0gMV1bMV0KICAgIHFpID0gMAogICAgZm9yIGogaW4gcmFuZ2UoaSAtIDEsIDAsIC0xKToKICAgICAgICBpZiBqb2JzW2ogLSAxXVsyXSA8PSBzaToKICAgICAgICAgICAgcWkgPSBqCiAgICAgICAgICAgIGJyZWFrCiAgICBxW2ldID0gcWkKCiMgT1BUIOOCkuioiOeulwpPUFQgPSBbMF0gKiAobiArIDEpCmZvciBpIGluIHJhbmdlKDEsIG4gKyAxKToKICAgIHZhbHVlID0gam9ic1tpIC0gMV1bM10KICAgIE9QVFtpXSA9IG1heChPUFRbaSAtIDFdLCBPUFRbcVtpXV0gKyB2YWx1ZSkKCiMg5Ye65Yqb77yI5b2i5byP5Y6z5a6I77yJCmZvciBpIGluIHJhbmdlKDEsIG4gKyAxKToKICAgIHByaW50KGYib3B0IHtpfSA9IHtPUFRbaV19IikK