#include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
struct cake{
double store,sell,price;
}ca[1010];
bool cmp(cake a,cake b)
{
return a.price>b.price;
}
int main()
{
int n;
double m;
scanf("%d %lf",&n,&m);
for(int i=0;i<n;i++)
{
scanf("%lf",&ca[i].store);
}
for(int i=0;i<n;i++)
{
scanf("%lf",&ca[i].sell);
ca[i].price=ca[i].sell/ca[i].store;
}
sort(ca,ca+n,cmp);
double ans=0;
for(int i=0;i<n;i++)
{
if(ca[i].store>=m)
{
ans+=m*ca[i].price;
break;
}
else
{
m-=ca[i].store;
ans+=ca[i].sell;
}
}
printf("%.2lf\n",ans);
return 0;
}