#include <queue>
#include <bits/stdc++.h>
#define ll long long
#define int ll
#define se second
#define fi first
using namespace std;
ll const N = 1e2 + 10 , mod = 19940417;
ll n , x , a[N] , b[N] , p[N] , q[N];
bool check(ll k){
ll tot = 0;
for (int i = 1;i <= n;i ++){
if (a[i] / 1.0 / p[i] < b[i] / 1.0 / q[i]) swap(a[i] , b[i]) , swap(p[i] , q[i]);
ll minn = 1e18;
for (int j = 0;j <= 100 && b[i] * j <= k;j ++){
ll ak = ceil((k - j * b[i]) / 1.0 / a[i]);
minn = min(minn , ak * p[i] + j * q[i]);
}
tot += minn;
}
return x >= tot;
}
signed main(){
ios::sync_with_stdio(false);
cin >> n >> x;
for (int i = 1;i <= n;i++) cin >> a[i] >> p[i] >> b[i] >> q[i];
ll l = 1 , r = 1e9 + 10 , mid , ans = 0;
while (l <= r){
mid = (l + r) / 2;
if (check(mid)){
l = mid + 1;
ans = mid;
}
else r = mid - 1;
}
cout << ans << "\n";
return 0;
}
/*
1 2 3 4 5
*/