{
TASK: socks
LANG: PASCAL
}
var
   i,j,k,n : LongInt;
   sum,min : real;
   a : array[1..30] of LongInt;
   b : array[1..30] of real;
begin
min:=9999;
readln(n,k);
a[1]:=1;
for i:=1 to n do
 begin
  read(a[i+1]);
  a[i+1]:=a[i]*a[i+1];
 end;
readln;
for i:=1 to n+1 do
 read(b[i]);
readln;
for i:=n+1 downto 1 do
 if a[i]<=k
  then
   begin
    sum:=sum+b[i]*(k div a[i]);
    k:=k mod a[i];
    if k=0 then begin writeln(sum:0:2);halt;end;
   end
  else
   break;
for i:=i downto 1 do
 begin
  j:=0;
  repeat
   inc(j);
   if (a[i]*j>=k) and (b[i]*j<min)
    then
     begin
      min:=b[i]*j;
      break;
     end;
  until a[i]*j>=k;
 end;
sum:=sum+min;
writeln(sum:0:2);
end.