#include<cstdio>
#include<cmath>
#define maxn 20000
using namespace std;
int n,t;
double sum;
typedef struct
{
double val,num;
}Point;
Point P[maxn];
void qsort(int x,int y)
{
int i=x,j=y,m=(i+j)/2;
while(i<=j)
{
while(P[i].val<P[m].val)i++;
while(P[j].val>P[m].val)j--;
if(i<=j)
{
double bo1,bo2;
bo1=P[i].val;
P[i].val=P[j].val;
P[j].val=bo1;
bo2=P[i].num;
P[i].num=P[j].num;
P[j].num=bo2;
i++;
j--;
}
}
if(i<y)qsort(i,y);
if(j>x)qsort(x,j);
}
int main()
{
scanf("%d%d",&n,&t);
for(int i=1;i<=n;i++)
{
double a,b;
scanf("%lf%lf",&a,&b);
P[i].val=b/a;
P[i].num=a;
}
qsort(1,n);
for(int i=n;i>=1;i--)
{
if(t>P[i].num){
sum+=P[i].val*P[i].num;
t-=P[i].num;
}
else {
if(t<=0)break;
sum+=P[i].val*t;
t-=P[i].num;
break;
}
}
printf("%.2f",sum);
return 0;
}