{
TASK:socks
LANG:PASCAL
}
var f,n,k,i,m:longint;
    s:real;
    a:array[1..31] of longint;
    b:array[1..31] of real;
begin
 readln(n,k);
 a[1]:=1;
 for i:=1 to n do
  begin
   read(a[i+1]);
   a[i+1]:=a[i+1]*a[i];
  end;
 for i:=1 to n+1 do
  read(b[i]);
 m:=n+1;
 f:=0;
 while a[m]<k do
  begin
   s:=s+b[m];
   k:=k-a[m];
  end;
 m:=m-1;
 while k>0 do
  begin
   if (a[m]>=k) and (a[m-1]<k)
    then begin
     s:=s+b[m];
     k:=k-a[m];
     f:=1;
    end;
   if f=0 then m:=m-1;
   f:=0;
  end;
 writeln(s:3:2);
end.