#include <bits/stdc++.h>
using namespace std;
#define int long long
int32_t main(){
ios_base::sync_with_stdio(false);
cin.tie(0);
int N, M;
cin >> N >> M;
vector<pair<int,int>> mt(N);
for (int i = 0; i < N; ++i) {
cin >> mt[i].second >> mt[i].first;
}
int ans = 0;
sort(mt.rbegin(), mt.rend());
while (mt.size()) {
vector<int> el;
el.push_back(mt.back().second);
int w1 = mt.back().first;
mt.pop_back();
while (mt.size() && mt.back().first == w1) {
el.push_back(mt.back().second);
mt.pop_back();
}
sort(el.begin(), el.end());
if (!mt.size()) {
int cnt = M / w1;
while (el.size() && cnt--) {
ans += el.back();
el.pop_back();
}
} else {
int w2 = mt.back().first;
int cnt = (M % w2) / w1;
while (el.size() && cnt--) {
ans += el.back();
el.pop_back();
}
M = (M / w2) * w2;
while (el.size()) {
cnt = 0;
int sum = 0;
while (el.size() && cnt++ < w2 / w1) {
sum += el.back();
el.pop_back();
}
mt.push_back({w2, sum});
}
}
}
cout << ans << '\n';
}