#include <stdio.h>
int main(){
int count;
float capacity,money=0;
float heap[100][2],average[100];//heap[0]存重量,heap[1]存价值
int i,j,k,t;
scanf("%d",&count);
scanf("%f",&capacity);
//录入数据
for(i=0;i<count;i++){
for(k=0;k<2;k++){
scanf("%f",&heap[i][k]);
}
average[i]=heap[i][k-1]/heap[i][k-2];//求出每堆的单价
}
while(capacity>0){
t=0;//默认最大值的下标为零
//遍历找出相对最大值下标
for(i=0;i<count-1;i++){
if(average[i+1]>=average[i]){
t=i+1;
}
}
//背包不会满
if(capacity-heap[t][0]>=0){
capacity-=heap[t][0];
money+=heap[t][1];
}
//背包会满
else{
money+=average[t]*capacity;
capacity=0;
}
average[t]=0;//该最大值失效
}
printf("%.2f",money);
return 0;
}