#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
int n, m;
cin >> n >> m;
vector<pair<int, int>> cakes(n);
for (int i = 0; i < n; ++i) {
cin >> cakes[i].first >> cakes[i].second;
}
sort(cakes.begin(), cakes.end(), [](const auto& a, const auto& b) {
return a.first > b.first;
});
long long totalTastiness = 0;
int remainingPieces = m;
for (int i = 0; i < n; ++i) {
if (remainingPieces >= cakes[i].second) {
totalTastiness += static_cast<long long>(cakes[i].first) * cakes[i].second;
remainingPieces -= cakes[i].second;
} else {
totalTastiness += static_cast<long long>(cakes[i].first) * remainingPieces;
break;
}
}
cout << totalTastiness << endl;
return 0;
}