#include <stdio.h>
#include <stdlib.h>
typedef struct {
double weight;
double Unitprice;
double price;
}DATA;
int cmp(const void *a,const void *b){
return (*( DATA *)b).Unitprice-(*( DATA *)a).Unitprice;
}
int main(){
double n,max_weight;
scanf("%lf%lf",&n,&max_weight);
DATA a[110];
for(int i=0;i<n;i++){
double price;
scanf("%lf%lf",&a[i].weight,&a[i].price);
a[i].Unitprice=a[i].price/a[i].weight;
}
qsort(a,n,sizeof(DATA),cmp);
int p=0;
double now_weight=0,ret=0;
while(p<n){
if(a[p].weight+now_weight>=max_weight){
ret+=(max_weight-now_weight)*a[p].Unitprice;
break;
}
else {
now_weight+=a[p].weight;
ret+=a[p].price;
p++;
}
}
printf("%.2lf",ret);
return 0;
}