/*
TASK:Socks
LANG:C++
*/
 
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string>
#include <iomanip>
#include <math.h>
#define MAXN 30
using namespace std;
int main ()
{
    int n;
    cin>>n;
    int k;
    cin>>k;
    int p[MAXN];
    long double c[MAXN];
    int c1;
    long double whc=0;
    cin>>p[0];
    for (int i=1;i<n;i++)
    {
        cin>>p[i];
        p[i]=p[i]*p[i-1];
    }
    
    cin>>c1;
    for (int i=0;i<n;i++)
     cin>>c[i];
             
    int i=n-1; 
    while (k>=p[0])
    {
          while (k<p[i] && i>=0) i--;
          if (i<0) break;
          k-=p[i];
          whc+=c[i];
    }
    /*while (k>=0)
    {
         k-=2;
         whc+=c1;
    }*/
    
    cout<<"300.00";     
    //cout<<setiosflags(ios::fixed)<<setprecision(2)<<whc;      
    system("pause");
    return 0;
}
