#include using namespace std; template inline void chmin(T1 &a,T2 b){if(a>b) a=b;} template inline void chmax(T1 &a,T2 b){if(a void drop(const T &x){cout<>n>>v>>l; const Int MAX = 1e7; if(l>=MAX) drop(-1); // O(N+V+L) <- usoyanke uku vector xs(n),vs(n),ws(n); for(Int i=0;i>xs[i]>>vs[i]>>ws[i]; const Int INF = 1e15; xs.emplace_back(l); vs.emplace_back(0); ws.emplace_back(INF); // keep dp[i]<=dp[i+1] deque dp(v+1,0); Int lst=0; for(Int i=0;i<=n;i++){ if(xs[i]-lst>v) drop(-1); for(Int j=0;j=0;j--) chmin(dp[min(j+vs[i],v)],dp[j]+ws[i]); for(Int j=v;j>0;j--) chmin(dp[j-1],dp[j]); } cout<