#include #include #include #include #define llint long long #define inf 1e18 using namespace std; typedef pair P; llint n, m, a; vector

vec[100005]; llint dp[100005]; int main(void) { cin >> n >> m >> a; llint l, r, p; for(int i = 1; i <= m; i++){ cin >> l >> r >> p; l--; vec[r].push_back(make_pair(l, p)); } llint mx = 0; for(int i = 1; i <= n; i++) dp[i] = -inf; dp[0] = 0; for(int i = 1; i <= n; i++){ for(int j = 0; j < vec[i].size(); j++){ dp[i] = max(dp[i], dp[vec[i][j].first] + vec[i][j].second - a); } dp[i] = max(dp[i], mx - a); mx = max(mx, dp[i]); } cout << dp[n] + a << endl; return 0; }