/*
TASK:socks
LANG:C
*/

#define MAXN 30
#include <stdio.h>

int n, k, i, j;
int a[MAXN+5]={1};
double price[MAXN+5], total, min=1000000000000000;

int main()
{

scanf ( "%d%d", &n, &k );

for ( i=1; i<=n; i++ )
    {
     scanf ( "%d", &a[i] );
     a[i] *= a[i-1];
    }

for ( i=0; i<=n; i++ )
    scanf ( "%lf", &price[i] );

for ( i=n; i>=0; i-- )
    {
     for ( ; k>0; k-= a[i] )
        total+= price[i];
     if (k<0) { if (total<min) min=total; }
     k+= a[i];
     total-= price[i];
    }

printf ( "%.2lf\n", min );

return 0;
}

