#include<iostream>
#include<vector>
#include<iomanip>
using namespace std;
struct Data {
double m;
double v;
double average;
Data pushback(Data D1)
{
m = D1.m;
v = D1.v;
average = D1.average;
}
};
int main()
{
int T1 = 0;
double val = 0;
vector<Data>vi;
int N, T;
cin >> N >> T;
for (int i = 0; i < N; i++)
{
double m1, v1;
cin >> m1 >> v1;
Data d1;
d1.m = m1;
d1.v = v1;
d1.average = v1 / m1;
vi.push_back(d1);
}
for (auto it = vi.begin(); it != vi.end()-1; it++)
{
if (it->average <= (it + 1)->average)
{
Data temp = *(it + 1);
*(it + 1) = *it;
*it = temp;
}
}
for (auto it = vi.begin(); it != vi.end(); it++)
{
if (T1 < T)
{
if (T1 + it->m < T)
{
T1 += it->m;
val += it->v;
}
else
{
int q = T - T1;
val += it->average * q;
T1 = T;
}
}
}
printf("%.2lf", val);
return 0;
}