#include <bits/stdc++.h>
using namespace std;
void fileIO(void) {
#ifndef ONLINE_JUDGE
    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);
#endif
}
void fastIO(void) {

    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);

}
#define tests          int t; cin>>t; for(int m = 0; m < (t); m++)
#define loop(n)          for(int i = 0; i < (n); i++)
#define lop(n)          for(int k = 1; k <= (n); k++)
#define lp(n)           for(int j = 0; j < (n); j++)
#define ll long long
#define endl '\n'
ll n , k , st =0  ,ed =1e10 + 1 ,mid ,ans =0 ; const ll N = 1e5 +8  ;
vector <pair < ll , ll >> v (N);
bool pred (ll coc){
    loop(n){
        if( coc * v[i].first > v[i].second )
            k-= coc * v[i].first - v[i].second ;
        if (k<0)
            return false ;
    }
    return k>=0;
}
int main () {
    cin>> n >>k ;
    loop(n) cin >>v[i].first;
    loop(n) cin >>v[i].second;
    while (st<=ed){
        mid=(st+ed)/2;
        if(pred(mid)){
            ans = mid;
            st = mid+1;
        }
        else ed = mid-1;
    }
    cout<< ans <<endl;


    return 0 ;
}