#include using namespace std; #define rep(i, n) for (int i = 0; i < (int)(n); i++) templatebool chmax(T &x, T y){if(x>=y)return false;x=y;return true;} templatebool chmin(T &x, T y){if(x<=y)return false;x=y;return true;} int main(){ long long N, Y, Z, ans = 0; auto ret = [&](){ cout << ans << endl; }; cin >> N >> Y >> Z; vector> v(N, vector (3)); rep(i, N)cin >> v[i][0] >> v[i][1] >> v[i][2]; sort(v.begin(), v.end(), [](const vector &a, const vector &b){return a[1]b[2];}); map m; for(int i = 0; i < N;){ if(Y>=Z){ ret(); return 0; } if(v[i][1]>Y)break; m[-v[i][1]] += v[i][0]; if(ix.second){ Y -= x.first*x.second; ans += x.second; }else{ ans += (Z-Y-x.first-1)%(-x.first); ret(); return 0; } } if(Y>=Z){ ret(); return 0; } cout << -1 << endl; }