#include <iostream>
#include <bits/stdc++.h>
using namespace std;
int max_units(vector<int>&req,vector<int>&cost,vector<int>&stock,int budget){
int n=req.size();
int low=0;
int high=1e9;
int ans=0;
while(low<=high){
int mid=(low+high)/2;
long long sum=0;
for(int i=0;i<n;i++){
long long need=max(0,req[i]*mid-stock[i]);
sum=sum+need*cost[i];
if(sum>budget){
break;
}
}
if(sum<=budget){
ans=mid;
low=mid+1;
}
else if(sum>budget){
high=mid-1;
}
}
return ans;
}
int main(){
int n;
cin>>n;
vector<int>req(n);
vector<int>cost(n);
vector<int>stock(n);
for(int i=0;i<n;i++){
cin>>req[i];
cin>>cost[i];
cin>>stock[i];
}
int budget;
cin>>budget;
int ans=max_units(req,cost,stock,budget);
cout<<"The maximum number of units that are possible from the available constraints are: "<<ans<<endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBtYXhfdW5pdHModmVjdG9yPGludD4mcmVxLHZlY3RvcjxpbnQ+JmNvc3QsdmVjdG9yPGludD4mc3RvY2ssaW50IGJ1ZGdldCl7CiAgICBpbnQgbj1yZXEuc2l6ZSgpOwogICAgaW50IGxvdz0wOwogICAgaW50IGhpZ2g9MWU5OwogICAgaW50IGFucz0wOwogICAgd2hpbGUobG93PD1oaWdoKXsKICAgICAgICBpbnQgbWlkPShsb3craGlnaCkvMjsKICAgICAgICBsb25nIGxvbmcgIHN1bT0wOwoKICAgICAgICBmb3IoaW50IGk9MDtpPG47aSsrKXsKICAgICAgICAgICAgbG9uZyBsb25nIG5lZWQ9bWF4KDAscmVxW2ldKm1pZC1zdG9ja1tpXSk7CiAgICAgICAgICAgIHN1bT1zdW0rbmVlZCpjb3N0W2ldOwogICAgICAgICAgICBpZihzdW0+YnVkZ2V0KXsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBpZihzdW08PWJ1ZGdldCl7CiAgICAgICAgICAgIGFucz1taWQ7CiAgICAgICAgICAgIGxvdz1taWQrMTsKICAgICAgICB9CgogICAgICAgIGVsc2UgaWYoc3VtPmJ1ZGdldCl7CiAgICAgICAgICAgIGhpZ2g9bWlkLTE7CiAgICAgICAgfSAKICAgIH0KCiAgICByZXR1cm4gYW5zOwoKfQoKaW50IG1haW4oKXsKICAgIGludCBuOwogICAgY2luPj5uOwogICAgdmVjdG9yPGludD5yZXEobik7CiAgICB2ZWN0b3I8aW50PmNvc3Qobik7CiAgICB2ZWN0b3I8aW50PnN0b2NrKG4pOwoKICAgIGZvcihpbnQgaT0wO2k8bjtpKyspewogICAgICAgIGNpbj4+cmVxW2ldOwogICAgICAgIGNpbj4+Y29zdFtpXTsKICAgICAgICBjaW4+PnN0b2NrW2ldOwogICAgfQogICAgaW50IGJ1ZGdldDsKICAgIGNpbj4+YnVkZ2V0OwoKICAgIGludCBhbnM9bWF4X3VuaXRzKHJlcSxjb3N0LHN0b2NrLGJ1ZGdldCk7CiAgICBjb3V0PDwiVGhlIG1heGltdW0gbnVtYmVyIG9mIHVuaXRzIHRoYXQgYXJlIHBvc3NpYmxlIGZyb20gdGhlIGF2YWlsYWJsZSBjb25zdHJhaW50cyBhcmU6ICI8PGFuczw8ZW5kbDsKICAgIHJldHVybiAwOwp9