#include <iostream>
using namespace std;
int w[25],c[25],v[25],maxx;
int main(){
    int n,wk;
    cin>>n>>wk;
    for(int i=1;i<=n;i++)
        cin>>w[i];
    for(int i=1;i<=n;i++)
        cin>>c[i];
    while(v[0]==0){
        int sumw=0,sumc=0,k=n;
    }
    while(v[k]==1){//从右往左找第一个0的位置
        v[k]--;//在此之前的都变0
        k--;
   }
    v[k]=1; //找到后该位变1
    for(int i=1;i<=n;i++){
        sumw+=v[i]*w[i];
        sumc+=v[i]*c[i];
    }
    if(sumw<=wk&&sumc>maxx)
        maxx=sumc;
    }
    cout<<maxx;
    return 0;
}


#转载请注明出处!