/*
TASK:socks
LANG:c++
*/
#include<iostream>
using namespace std;
int main ()
{
long long N,K,br[40],i,j,p;
double c[40],u=0;
scanf("%lld%lld",&N,&K);
br[0]=1;
for (i=1;i<=N;i++)
    scanf("%lld",&br[i]);
for (i=0;i<=N;i++)
    scanf("%lf",&c[i]);
for (;K!=0;)
    {
    p=1;
    for (i=0;i<=N;i++)
        {p*=br[i];
        if(p>=K){u+=c[i];K=0;break;}
        }
    if(i>N){u+=(double)(K/p)*c[N];K%=p;}
    }
printf("%.2lf\n",u);
return 0;
}

