
{
TASK:socks
LANG:PASCAL
}
var
a,b:array[1..100]of longint;
sum:array[1..100]of real;
j,k,l,i,n,k1,k2:integer;
tek,tek1,tek2:real;
begin
 readln(n,k);
 for i:=1 to n do
   read(a[i]);
  writeln;
  for i:=1 to n+1 do
     read(sum[i]);
  writeln;
  b[1]:=a[1];
  j:=b[1];
 for i:=2 to n do
  begin
   j:=j*a[i];
   b[i]:=j;
  end;
   k1:=k;

   for l:=n downto 1 do
    repeat
    if b[l]<=k1 then
     begin
      k1:=k1-b[l];
      tek:=tek+sum[l+1];
      if k1=0 then
       begin
        writeln(tek:3:2);
        exit;
       end;
     end
     else
     begin
      k2:=k1;
      k1:=k1-b[l];
      tek1:=tek1+sum[l+1];

      if (k1<=0) then
        begin
         tek:=tek+tek1;
          writeln(tek:3:2);
          exit;
        end      ;
    end;
   until b[l]>k1;
   writeln(tek:3:2);

 end.