#include <bits/stdc++.h>
using namespace std;
#define int long long
#define F first
#define S second
#define _READ freopen("input.txt", "r", stdin);
#define _FAST \
ios_base::sync_with_stdio(false); \
cin.tie(0); \
cout.tie(0);
int32_t main()
{
_FAST
int n,w;
cin>>n>>w;
vector<int> dp(w+1,0);
//dp[weight]-->maximum price can have using
vector<int> h(n),s(n),k(n);
for(auto &i:h)
cin>>i;
for(auto &i:s)
cin>>i;
for(auto &i:k)
cin>>i;
vector<pair<int,int>> v;//weight,price
for(int i=0;i<n;i++)
{
for(int j=0;j<k[i];j++)
{
v.push_back({h[i],s[i]});
}
}
int m=v.size();
for(int i=0;i<m;i++)
{
int price=v[i].S;
int weight=v[i].F;
for(int j=w;j-weight>=0;j--)
dp[j]=max(dp[j],dp[j-weight]+price);
}
cout<<dp[w];
return 0;
}