#include using lint=long long; using real=long double; void cmx(lint&x,lint y){if(x>n>>m>>a; std::vector>>g(n+1); while(m--){ lint l,r,p;std::cin>>l>>r>>p;l--; g.at(l).emplace_back(r,p); } std::vectordp(n+1,-a); dp.at(0)=0; for(lint i=0,max=0;i<=n;i++){ cmx(dp.at(i),max-a); for(auto&&[j,p]:g.at(i)){ cmx(dp.at(j),dp.at(i)+p-a); } cmx(max,dp.at(i)); } std::cout<