/*
TASK: socks
LANG: C++
*/

#include <iostream.h>
#include <stdio.h>

int n,k;
int mass[31];
double c[31];

void read()
{
	cin>>n>>k;
	mass[0]=1;
	int i;
	for(i=1;i<=n;i++)
	{
		cin>>mass[i];
		mass[i]=mass[i]*mass[i-1];
	}
	for(i=0;i<=n;i++)
	{
		cin>>c[i];
	}
}

double rec(int pos,int sum)
{
	if(sum<=0) return 0;
	double min=10000000;
	int i=pos;
	while(mass[i]>sum)
	{
		if(c[i]<min) min=c[i];
		i--;
	}
	int k;
	k=sum/mass[i];
	double seg=0;
	seg+=k*c[i];
	seg+=rec(i,sum-k*mass[i]);
	if(min>seg) min=seg;
	return min;
}

int main()
{
	read();
	double sel;
	sel=rec(n,k);
	printf("%.2f\n",sel);
	return 0;
}