#include <iostream>
#include <algorithm>
#include <vector>
#include <iomanip>
using namespace std;
typedef struct N {
int m;
int v;
int s;
} a;
bool cmp(N x, N y) {
return x.s > y.s;
}
int main () {
int n, t;
cin >> n >> t;
vector<N> a(n);
for (int i = 0; i < n; i++) {
cin >> a[i].m >> a[i].v;
a[i].s = a[i].v / a[i].m;
}
sort (a.begin(), a.end(), cmp);
int q = 0;
for (int i = 0; i < n; i++) {
if (t - a[i].m >= 0) {
t = t - a[i].m;
q = q + a[i].s * a[i].m;
}
else if (t - a[i].m < 0) {
q = q + a[i].s * t;
break;
}
}
cout << fixed << setprecision(2) << (float)q << endl;
return 0;
}