#pragma GCC optimize("Ofast") #pragma GCC target("avx2") char*mmap(); #define RD(v) int v=0;{int _c;while(_c=*rp++-48,_c>=0)v=v*10+_c;} long d[5000000]; main(){ char*rp=mmap(0l,1l<<28,1,2,0,0ll); while(*rp++>=48); RD(f); RD(l); int b=f; do{ RD(x); RD(v); RD(w); if(x>b){ puts("-1"); exit(0); } int c=b+v=x;--i){ int j=i-v>=x?i-v:x; if(i>b|d[i]>d[j]+w) d[i]=d[j]+w; } b=c; }while(*rp); if(l>b){ puts("-1"); exit(0); // RE } printf("%ld",d[l]); }