#include <bits/stdc++.h>
using namespace std;

int main() {
    int n;
    long long budget;
    cin >> n >> budget;
    vector<long long> comp(n), stock(n), cost(n);
    for (int i = 0; i < n; i++) cin >> comp[i];
    for (int i = 0; i < n; i++) cin >> stock[i];
    for (int i = 0; i < n; i++) cin >> cost[i];

    long long lo = 0, hi = 1e18;
    long long ans = 0;   
    while (lo <= hi) {
        long long mid = (lo + hi) / 2;
        long long total = 0;
        bool ok = true;
        for (int i = 0; i < n; i++) {
            long long need = comp[i] * mid - stock[i];
            if (need > 0) {
                total += need * cost[i];
                if (total > budget) { ok = false; break; }  // early exit
            }
        }
        if (ok) { ans = mid; lo = mid + 1; }
        else hi = mid - 1;
    }
    cout << ans;
}