{
TASK: socks
LANG: PASCAL
}
type sock=record
           a:longint;
           b:real;
          end;
var
 n,k,c:longint;
 a:array[1..100]of sock;
 b:sock;
 sp,p:real;
begin
 readln(n,k);
 for c:=1 to n do begin
                   read(b.a);
                   if c>1 then a[c].a:=b.a*a[c-1].a
                          else a[c].a:=b.a;
                  end;
 read(sp);
 for c:=1 to n do read(a[c].b);
 p:=0;
 for c:=n downto 1 do begin
                       if k<=0 then break;
                       repeat
                        k:=k-a[c].a;
                        p:=p+a[c].b;
                       until k<a[c].a;
                      end;
 while k>0 do begin
               k:=k-1;
               p:=sp+p;
              end;
 writeln(p:0:2);
end.
