#include<iostream>
#include<algorithm>
using namespace std;

typedef struct node


{
double w;
double v;
}Node;

Node b[20005];

bool cmp(Node a,Node b)


{
return (a.v/a.w) > (b.v/b.w);
}

int main()


{
int n;
double c;
while(cin>>n>>c)

{
int i;
for(i = 0;i < n;i++)
cin>>b[i].w;
for(i = 0;i < n;i++)
cin>>b[i].v;
sort(b,b+n,cmp);
double sum = 0.0;
for(i = 0;i < n;i++)

{
if(b[i].w <= c)

{
sum += b[i].v;
c = c-b[i].w;
}
else

{
break;
}
}
if(i <= n)

{
sum = sum + c * b[i].v/b[i].w;
}
printf("%.1lf\n",sum);
}
return 0;
}