#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
struct moon{
double a;
double p,pi;
}mo[1100];
bool cmp(moon c, moon b)
{
return c.pi > b.pi;
}
int main()
{
int n;
double d;
scanf("%d %lf",&n,&d);
for(int i = 0; i < n; i++)
scanf("%lf",&mo[i].a);
for(int i = 0; i < n; i++)
{
scanf("%lf",&mo[i].p);
mo[i].pi = mo[i].p / mo[i].a;
}
sort(mo,mo+n,cmp);
double ans = 0;
double num = d;
for(int i = 0; i < n; i++)
{
if(num <= mo[i].a)
{
ans += num * mo[i].pi;
break;
}
else
{
ans += mo[i].p;
num -= mo[i].a;
}
}
printf("%.2lf",ans);
return 0;
}