#include <iostream>
#include <algorithm>
#include <vector>
struct range {
int from, to;
double w;
};
bool operator<(range const& l, range const& r) { return l.to < r.to; }
struct until_now {
until_now(int pos, double w) : pos(pos), w(w) {}
int pos;
double w;
};
bool operator<(until_now const& l, int pos) { return l.pos > pos; }
int main()
{
std::vector<range> ranges;
for (range r; std::cin >> r.from >> r.to >> r.w;)
ranges.push_back(r);
std::sort(ranges.begin(), ranges.end());
std::vector<until_now> dp; dp.push_back(until_now(-1, 0));
for (std::vector<range>::const_iterator it=ranges.begin(); it!=ranges.end(); ++it) {
double w = std::max(dp.back().w,
std::lower_bound(dp.rbegin(), dp.rend(), it->from)->w + it->w);
if (dp.back().pos == it->to) dp.back().w = std::max(dp.back().w, w);
else dp.push_back(until_now(it->to, w));
}
std::cout << dp.back().w << '\n';
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8dmVjdG9yPgoKc3RydWN0IHJhbmdlIHsKICBpbnQgZnJvbSwgdG87CiAgZG91YmxlIHc7Cn07CmJvb2wgb3BlcmF0b3I8KHJhbmdlIGNvbnN0JiBsLCByYW5nZSBjb25zdCYgcikgeyByZXR1cm4gbC50byA8IHIudG87IH0KCnN0cnVjdCB1bnRpbF9ub3cgewogIHVudGlsX25vdyhpbnQgcG9zLCBkb3VibGUgdykgOiBwb3MocG9zKSwgdyh3KSB7fQogIGludCBwb3M7CiAgZG91YmxlIHc7Cn07CmJvb2wgb3BlcmF0b3I8KHVudGlsX25vdyBjb25zdCYgbCwgaW50IHBvcykgeyByZXR1cm4gbC5wb3MgPiBwb3M7IH0KCmludCBtYWluKCkKewogIHN0ZDo6dmVjdG9yPHJhbmdlPiByYW5nZXM7CiAgZm9yIChyYW5nZSByOyBzdGQ6OmNpbiA+PiByLmZyb20gPj4gci50byA+PiByLnc7KQogICAgcmFuZ2VzLnB1c2hfYmFjayhyKTsKICBzdGQ6OnNvcnQocmFuZ2VzLmJlZ2luKCksIHJhbmdlcy5lbmQoKSk7CiAgCiAgc3RkOjp2ZWN0b3I8dW50aWxfbm93PiBkcDsgZHAucHVzaF9iYWNrKHVudGlsX25vdygtMSwgMCkpOwogIGZvciAoc3RkOjp2ZWN0b3I8cmFuZ2U+Ojpjb25zdF9pdGVyYXRvciBpdD1yYW5nZXMuYmVnaW4oKTsgaXQhPXJhbmdlcy5lbmQoKTsgKytpdCkgewogICAgZG91YmxlIHcgPSBzdGQ6Om1heChkcC5iYWNrKCkudywKICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjpsb3dlcl9ib3VuZChkcC5yYmVnaW4oKSwgZHAucmVuZCgpLCBpdC0+ZnJvbSktPncgKyBpdC0+dyk7CiAgICBpZiAoZHAuYmFjaygpLnBvcyA9PSBpdC0+dG8pIGRwLmJhY2soKS53ID0gc3RkOjptYXgoZHAuYmFjaygpLncsIHcpOwogICAgZWxzZSBkcC5wdXNoX2JhY2sodW50aWxfbm93KGl0LT50bywgdykpOwogIH0KICBzdGQ6OmNvdXQgPDwgZHAuYmFjaygpLncgPDwgJ1xuJzsKfQo=