#include <bits/stdc++.h>
using namespace std;
using ll = long long;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n;
ll W;
if (!(cin >> n >> W)) return 0;
vector<pair<ll,ll>> a(n);
vector<ll> uniq;
uniq.reserve(n);
for (int i = 0; i < n; ++i) {
cin >> a[i].first >> a[i].second;
uniq.push_back(a[i].second);
}
sort(uniq.begin(), uniq.end());
uniq.erase(unique(uniq.begin(), uniq.end()), uniq.end());
int m = (int)uniq.size();
vector<vector<ll>> g(m);
for (int i = 0; i < n; ++i) {
int id = int(lower_bound(uniq.begin(), uniq.end(), a[i].second) - uniq.begin());
g[id].push_back(a[i].first);
}
vector<ll> base;
for (int i = 0; i + 1 < m; ++i) base.push_back(uniq[i+1] / uniq[i]);
vector<ll> cap(m, 0);
ll rem = W;
for (int i = 0; i + 1 < m; ++i) {
cap[i] = rem % base[i];
rem /= base[i];
}
cap[m-1] = rem;
ll ans = 0;
for (int i = 0; i < m; ++i) {
auto &vec = g[i];
if (!vec.empty()) sort(vec.begin(), vec.end(), greater<ll>());
int s = (int)vec.size();
vector<ll> pref(s+1, 0);
for (int j = 0; j < s; ++j) pref[j+1] = pref[j] + vec[j];
ll take = min<ll>(cap[i], s);
ans += pref[(int)take];
if (i + 1 < m) {
int start = (int)take;
ll k = base[i];
int remCnt = s - start;
int groups = remCnt / (int)k;
for (int gidx = 0; gidx < groups; ++gidx) {
int L = start + gidx * (int)k;
int R = L + (int)k;
g[i+1].push_back(pref[R] - pref[L]);
}
}
}
cout << ans << '\n';
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp1c2luZyBsbCA9IGxvbmcgbG9uZzsKCmludCBtYWluKCkgewogICAgaW9zOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwogICAgY2luLnRpZShudWxscHRyKTsKCiAgICBpbnQgbjsKICAgIGxsIFc7CiAgICBpZiAoIShjaW4gPj4gbiA+PiBXKSkgcmV0dXJuIDA7CgogICAgdmVjdG9yPHBhaXI8bGwsbGw+PiBhKG4pOwogICAgdmVjdG9yPGxsPiB1bmlxOwogICAgdW5pcS5yZXNlcnZlKG4pOwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyArK2kpIHsKICAgICAgICBjaW4gPj4gYVtpXS5maXJzdCA+PiBhW2ldLnNlY29uZDsKICAgICAgICB1bmlxLnB1c2hfYmFjayhhW2ldLnNlY29uZCk7CiAgICB9CiAgICBzb3J0KHVuaXEuYmVnaW4oKSwgdW5pcS5lbmQoKSk7CiAgICB1bmlxLmVyYXNlKHVuaXF1ZSh1bmlxLmJlZ2luKCksIHVuaXEuZW5kKCkpLCB1bmlxLmVuZCgpKTsKICAgIGludCBtID0gKGludCl1bmlxLnNpemUoKTsKCiAgICB2ZWN0b3I8dmVjdG9yPGxsPj4gZyhtKTsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgKytpKSB7CiAgICAgICAgaW50IGlkID0gaW50KGxvd2VyX2JvdW5kKHVuaXEuYmVnaW4oKSwgdW5pcS5lbmQoKSwgYVtpXS5zZWNvbmQpIC0gdW5pcS5iZWdpbigpKTsKICAgICAgICBnW2lkXS5wdXNoX2JhY2soYVtpXS5maXJzdCk7CiAgICB9CgogICAgdmVjdG9yPGxsPiBiYXNlOwogICAgZm9yIChpbnQgaSA9IDA7IGkgKyAxIDwgbTsgKytpKSBiYXNlLnB1c2hfYmFjayh1bmlxW2krMV0gLyB1bmlxW2ldKTsKCiAgICB2ZWN0b3I8bGw+IGNhcChtLCAwKTsKICAgIGxsIHJlbSA9IFc7CiAgICBmb3IgKGludCBpID0gMDsgaSArIDEgPCBtOyArK2kpIHsKICAgICAgICBjYXBbaV0gPSByZW0gJSBiYXNlW2ldOwogICAgICAgIHJlbSAvPSBiYXNlW2ldOwogICAgfQogICAgY2FwW20tMV0gPSByZW07CgogICAgbGwgYW5zID0gMDsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbTsgKytpKSB7CiAgICAgICAgYXV0byAmdmVjID0gZ1tpXTsKICAgICAgICBpZiAoIXZlYy5lbXB0eSgpKSBzb3J0KHZlYy5iZWdpbigpLCB2ZWMuZW5kKCksIGdyZWF0ZXI8bGw+KCkpOwogICAgICAgIGludCBzID0gKGludCl2ZWMuc2l6ZSgpOwogICAgICAgIHZlY3RvcjxsbD4gcHJlZihzKzEsIDApOwogICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgczsgKytqKSBwcmVmW2orMV0gPSBwcmVmW2pdICsgdmVjW2pdOwoKICAgICAgICBsbCB0YWtlID0gbWluPGxsPihjYXBbaV0sIHMpOwogICAgICAgIGFucyArPSBwcmVmWyhpbnQpdGFrZV07CgogICAgICAgIGlmIChpICsgMSA8IG0pIHsKICAgICAgICAgICAgaW50IHN0YXJ0ID0gKGludCl0YWtlOwogICAgICAgICAgICBsbCBrID0gYmFzZVtpXTsKICAgICAgICAgICAgaW50IHJlbUNudCA9IHMgLSBzdGFydDsKICAgICAgICAgICAgaW50IGdyb3VwcyA9IHJlbUNudCAvIChpbnQpazsKICAgICAgICAgICAgZm9yIChpbnQgZ2lkeCA9IDA7IGdpZHggPCBncm91cHM7ICsrZ2lkeCkgewogICAgICAgICAgICAgICAgaW50IEwgPSBzdGFydCArIGdpZHggKiAoaW50KWs7CiAgICAgICAgICAgICAgICBpbnQgUiA9IEwgKyAoaW50KWs7CiAgICAgICAgICAgICAgICBnW2krMV0ucHVzaF9iYWNrKHByZWZbUl0gLSBwcmVmW0xdKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBjb3V0IDw8IGFucyA8PCAnXG4nOwogICAgcmV0dXJuIDA7Cn0K
MjAgMTAwMDAKMjIyNTEyNjkxMDUyIDQwOTYKNTYyMDUxMTM5MSAxMjgKNTE0Mjc3NTIyOCA2NAoxOTc3NDI2NTk0NzcgNDA5Ngo1MjU3NTkzNTQxMjkgODE5MgoxOTAwMzc4MzkzOSA1MTIKMTc0NjA5NjE1NzMzIDQwOTYKNDU3NDkxMDA3IDgKMTgzMDY4MDg5NzQgMjU2Cjk5MDQ5NjY3NyAxNgo0MjMwNzY2NzI5IDEyOAoxMTIwMTM5ODM4MSAyNTYKNzM1NzI4Njc3NjggMTAyNAo4Nzk5ODQ2NjczIDEyOAoxOTY4ODUxNjk5IDMyCjY0MDEzNzA0ODAgMTI4CjEwMTA4MDUyMTUgMTYKNjQ5MzAzODY0NDkgMTAyNAo1NDUwMTM1NCAxCjI4ODg2NzU2MDA4OCA0MDk2
20 10000
222512691052 4096
5620511391 128
5142775228 64
197742659477 4096
525759354129 8192
19003783939 512
174609615733 4096
457491007 8
18306808974 256
990496677 16
4230766729 128
11201398381 256
73572867768 1024
8799846673 128
1968851699 32
6401370480 128
1010805215 16
64930386449 1024
54501354 1
288867560088 4096