#include #include using namespace std; using namespace atcoder; #define ll long long #define rep(i,a,b) for(int i=(a);i<(b);i++) #define repl(i,a,b) for(ll i=(a);i<(b);i++) #define all(a) (a).begin(),(a).end() #define rall(a) (a).rbegin(),(a).rend() template bool chmin(T &a,T b){if(a>b){a=b;return true;} return false;} template bool chmax(T &a,T b){if(a> n; ll y,z; cin >> y >> z; using P=tuple; priority_queue,greater

> que; priority_queue

que2; rep(i,0,n){ ll c,l,x; cin >> c >> l >> x; if(ly) break; que.pop(); que2.push({x,l,c}); } if(que2.empty()) break; auto [x,l,c]=que2.top(); if(que.empty()){ que2.pop(); if(x>=(z-y)/c){ ans+=(z-y-1)/x+1; y=z; } else{ ans+=c; y+=x*c; } } else{ auto [l2,x2,c2]=que.top(); que2.pop(); if(x<=(l2-y)/c){ ans+=c; y+=x*c; } else{ ans+=(l2-y-1)/x+1; que2.push({x,l,c-((l2-y-1)/1)}); y+=x*((l2-y-1)/x+1); } } } if(y