#include<stdio.h>
#include<stdlib.h>
#include<iostream>
#include<string>
#include<algorithm>
#include<vector> 
#include<limits>
#include<numeric>
#include<math.h>
#include<map>
using namespace std;

#define rep(i, n) for(int i = 0; i < (int)(n); i++)
#define repi(i,a,b) for(int i = (int)(a); i < (int)(b); i++)
#define in(x) cin >> x
#define out(str) cout << str << endl

template<class T>bool chmax(T &a, const T &b) { if (a<b) { a=b; return 1; } return 0; }
template<class T>bool chmin(T &a, const T &b) { if (b<a) { a=b; return 1; } return 0; }

double ans=0;
int N,W;

int main(){
    cin>>N>>W;
    double v[N],w[N],dp[W][N];
    vector<pair<double,double> > co(N);
    rep(i,N){
        cin>>v[i]>>w[i];
        co[i]=make_pair(v[i]/w[i],w[i]);
    }
    sort(co.begin(),co.end());
        for(int i=N-1;i>=0;i--){
            if(W>=co[i].second){
                ans+=co[i].first*co[i].second;
                W-=co[i].second;
            }
            else{
                ans+=co[i].first*W;
                W=0;
                break;
            }
            // out(W);
            // out(ans);
        }
    printf("%.10f\n",ans);
    
}

