#include<iostream>
#include<iomanip>
using namespace std;
struct ku{
double sum;
double n;
double prize;
void setprize(){
prize=sum/n;
}
};
void swap(ku &a,ku &b){
ku temp=a;
a=b;
b=temp;
}
void quicksort(ku zu[],int low,int high){
if(low>=high){
return;
}else{
int i=low ;int j=high ; double base=zu[(i+j)/2].prize;
while(i<=j){
while(zu[i].prize>base){
i++;
}
while(zu[j].prize<base){
j--;
}
if(i<=j){
swap(zu[i],zu[j]);
i++;
j--;
}
}
quicksort(zu,low,j);
quicksort(zu,i,high);
}
}
int main(){
ku t[200];
int n,num=0;
double ans=0;
cin>>n>>num;
for(int i=0;i<n;i++){
cin>>t[i].n;
cin>>t[i].sum;
t[i].setprize();
}
quicksort(t,0,n-1);
int j=0;
while(num>0){
if(num>t[j].n){
ans+=t[j].sum;
num-=t[j].n;
j++;
}else{
ans+=num*t[j].prize;
break;
}
}
cout<<fixed<<setprecision(2)<<ans;
system("pause");
return 0;
}