1 #include<iostream>
2 #include<cstdio>
3 #include<queue>
4 #include<utility>
5 using namespace std;
6 int n,h,f[100],d[100],t[100],ans,Time,nowt;
7 typedef pair<int,int> P;
8 priority_queue<P>q;
9 int main()
10 {
11 scanf("%d%d",&n,&h);
12 h*=12;
13 for(int i=1;i<=n;i++) scanf("%d",&f[i]);
14 for(int i=1;i<=n;i++) scanf("%d",&d[i]);
15 for(int i=1;i<=n-1;i++) scanf("%d",&t[i]);
16 for(int i=1;i<=n;i++)
17 {
18 Time=h-nowt;
19 nowt+=t[i];
20 int now=0;
21 while(!q.empty()) q.pop();
22 for(int j=1;j<=i;j++) q.push(make_pair(f[j],j));
23 while(Time>0&&!q.empty()&&q.top().first>0)
24 {
25 P top=q.top();q.pop();
26 Time--;
27 now+=top.first;
28 top.first-=d[top.second];
29 q.push(top);
30 }
31 ans=max(ans,now);
32 }
33 printf("%d",ans);
34 return 0;
35 }