#include using namespace std; int main() { ios::sync_with_stdio(false); int N, M, A; { cin >> N >> M >> A; } vector>> pr(N + 1); { for (int i = 0; i < M; ++i) { int L, R, P; cin >> L >> R >> P; pr[L - 1].emplace_back(P, R); } } const int64_t INF = (int64_t) 1 << 60; vector> d(N + 1, vector(2, -INF)); { d[0][1] = 0; for (int i = 0; i < N; ++i) { for (int j = 0; j < 2; ++j) { d[i + 1][0] = max(d[i + 1][0], d[i][j]); d[i + 1][1] = max(d[i + 1][1], d[i][j] - A); for (auto [p, r] : pr[i]) { if (j) d[r][1] = max(d[r][1], d[i][j] - A + p); } } } } int64_t res = max(d[N][0], d[N][1] + A); cout << res << endl; }