type room=record
a,b,c,d,e:longint;
end;
var i,j,m,ans,max,n:longint;
f:array[0..14] of room;
vis:array[0..14] of integer;
k:array[1..3] of longint;
procedure dfs(deep:longint);
var i,j:longint;
kt:array[1..3] of longint;
begin
ans:=0;
for i:=1 to 3 do
ans:=ans+k[i];
if max<ans then max:=ans;
for i:=1 to m do
if vis[i]=0 then begin
if ((k[1]+k[3])>=f[i].a)and((k[2]+k[3])>=f[i].b)and((k[1]+k[2]+k[3])>=(f[i].a+f[i].b))
then begin
for j:=1 to 3 do kt[j]:=k[j];
k[1]:=k[1]-f[i].a+f[i].c;
k[2]:=k[2]-f[i].b+f[i].d;
k[3]:=k[3]+f[i].e;
vis[i]:=1;
for j:=1 to 2 do
if k[j]<0 then begin k[3]:=k[3]+k[j];k[j]:=0;end;
dfs(deep+1);
vis[i]:=0;
for j:=1 to 3 do k[j]:=kt[j];
end;
end;
end;
begin
assign(input,'asm_grenade.in');
assign(output,'asm_grenade.out');
reset(input);
rewrite(output);
readln(n);m:=n;
for i:=1 to n do
read(f[i].a);
for i:=1 to n do
read(f[i].b);
for i:=1 to n do
read(f[i].c);
for i:=1 to n do
read(f[i].d);
for i:=1 to n do
read(f[i].e);
for i:=1 to 3 do
read(k[i]);
if n>8 then begin
for i:=1 to n do
if ((f[i].c+f[i].e)<=f[i].a)and((f[i].d+f[i].e)<=f[i].b) then vis[i]:=1;
for i:=1 to n do
if ((f[i].c+f[i].e)>=f[i].a)and((f[i].d+f[i].e)>=f[i].b)and((f[i].c+f[i].d+f[i].e)>(f[i].a+f[i].b))
then begin
if ((k[1]+k[3])>=f[i].a)and((k[2]+k[3])>=f[i].b)and((k[1]+k[2]+k[3])>=(f[i].a+f[i].b))
then begin
k[1]:=k[1]-f[i].a+f[i].c;
k[2]:=k[2]-f[i].b+f[i].d;
k[3]:=k[3]+f[i].e;
vis[i]:=1;
for j:=1 to 2 do
if k[j]<0 then begin k[3]:=k[3]+k[j];k[j]:=0;end;
end;
end;
for i:=n downto 1 do
if vis[i]=0 then
for j:=1 to i-1 do
if vis[j]=1 then begin vis[j]:=0;f[j].a:=f[i].a;f[j].b:=f[i].b;
f[j].c:=f[i].c;f[j].d:=f[i].d;f[j].e:=f[i].e;vis[i]:=1;
dec(m);
end;
end;
dfs(0);
writeln(max);
close(input);
close(output);
end.