#include<bits/stdc++.h>
using namespace std;
int n,h,hhh,hh,f[30],d[30],t[30],sum,ans;
struct node{
int a,num;
bool operator <(node x)const{
return num<x.num;
}
};
priority_queue<node> q;
int main()
{
scanf("%d%d",&n,&hh);
h=hh*60;
for(int i=1;i<=n;i++) scanf("%d",&f[i]);
for(int i=1;i<=n;i++) scanf("%d",&d[i]);
for(int i=2;i<=n;i++) scanf("%d",&t[i]);
for(int i=1;i<=n;i++){
h-=t[i]*5;
sum=0;
while(!q.empty()) q.pop();
for(int j=1;j<=i;j++){
node u;
u.a=i;u.num=f[j];
q.push(u);
}
hh=h;
for(int j=1;j<=h/5;j++)
{
node T=q.top();
q.pop();
sum=sum+T.num;
T.num=T.num-d[T.a];
if(T.num<0)T.num=0;
q.push(T);
}
ans=max(ans,sum);
}
printf("%d",ans);
return 0;
}
码风很丑,请大佬见谅