#include using namespace std; int main(){ cin.tie(0); ios::sync_with_stdio(false); int N, M; long long A; cin >> N >> M >> A; vector Ls(M, 0); vector Rs(M, 0); vector Ps(M, 0LL); vector idx(N + 1, -1); vector next(M, -1); for (int i = 0; i < M; ++i) cin >> Ls[i] >> Rs[i] >> Ps[i]; for (int i = 0; i < M; ++i){ int r = Rs[i]; next[i] = idx[r]; idx[r] = i; } vector dp(N + 1, 0); long long record = 0; for (int i = 1; i <= N; ++i){ dp[i] = record - A; int pos = idx[i]; while (pos != -1){ int L = Ls[pos]; long long score = dp[L - 1] + Ps[pos] - ((i == N) ? 0 : A); dp[i] = max(dp[i], score); pos = next[pos]; } if (dp[i] > record) record = dp[i]; } cout << record << endl; return 0; }