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


# include <iostream.h>
# include <stdlib.h>

int n,k;
int a[30];
float b[30];
float pay=0;


int main()
{int i;
 int m,f;
 cin>>n>>k;
 cin>>a[0];
 for (i=1;i<n;i++) {cin>>m;
		    if (i>0) a[i]=a[i-1]*m;
		   }
 a[n]=1;
 for (i=0;i<n;i++) {f=a[n];
		    a[n]=a[i];
		    a[i]=f;
		   }
 for (i=0;i<n+1;i++) cin>>b[i];
 for(i=n;i>0;i--){ if (a[i]<k) {k=k-a[i];
				pay=b[i-1]+b[i];
			       if ((b[i]/10!=0)&&(b[i-1]/10!=0)) { cout<<pay<<".00"<<endl; return 0;}
			       cout<<pay<<endl;
			       return 0;
			       }
		    if (a[i]-k<a[i-i]) {k=k-a[i];
					pay=pay+b[i];
				       }
		 }
return 0;
}