#include<cstdio>
#include<algorithm>
using namespace std;
struct cake{
double z;
double j;
double s;
}buf[1001];
bool cmp(cake a,cake b){
return a.s > b.s;
}
int main(){
int n,d;
double ans = 0;
scanf("%d%d",&n,&d);
for(int i = 0;i < n;i ++){
scanf("%lf",&buf[i].z);
}
for(int i = 0;i < n;i ++){
scanf("%lf",&buf[i].j);
buf[i].s = buf[i].j/buf[i].z;
}
sort(buf,buf + n,cmp);
int idx = 0;
while(d > 0 && idx < n){
if(buf[idx].z < d){
ans += buf[idx].j;
d -= buf[idx].z;
}
else{
ans += buf[idx].j*d/buf[idx].z;
d = 0;
}
idx ++;
}
printf("%.2lf",ans);
return 0;
}