
/**
2017.3.25
Donald
*/
/**
思路:不用dp,
直接按其价值比,从高到底堆积。
*/
#include<bits/stdc++.h>
using namespace std;
#define MAXN 10001
int N;
int W;
pair<double , pair<int, int> > Pair[MAXN];
void solve() {
double value = 0;
int remainWeight = W;
sort(Pair, Pair + N);
for (int i = N - 1; i >= 0; i --) {
if (remainWeight <= 0)
break;
if (Pair[i].second.first >= remainWeight) {
value += remainWeight * Pair[i].first;
remainWeight = 0;
} else {
value += Pair[i].second.second;
remainWeight -= Pair[i].second.first;
}
}
printf("%.1lf", value);
}
int main(void) {
int gi, pi;
double rate;
scanf("%d%d", &N, &W);
for (int i = 0 ; i < N; ++i) {
scanf("%d%d", &gi, &pi);
rate = pi * 1.0 / gi;
Pair[i].first = rate;
Pair[i].second.first = gi;
Pair[i].second.second = pi;
}
solve();
return 0;
}