(cr:算法笔记)
class YB:
p=0
v=0
s=0
def __init__(self,v,s):
self.v=v
self.s=s
self.p=self.s/self.v
def __lt__(self,obj): #小于号重载
return self.p<obj.p
N,D=map(int,input().split())
vol=list(map(int,input().split()))
price=list(map(int,input().split()))
sp=0
a=list()
for i in range(N):
y=YB(vol[i],price[i])
a.append(y)
a.sort(reverse=True)
for i in range(N):
if (D-a[i].v)<=0:
sp=sp+D*a[i].p
break
else:
sp=sp+a[i].s
D=D-a[i].v
print("%.2f" %sp)