#include using namespace std; typedef long long ll; bool comp(pair&a, pair& b) { auto [wa, va] = a; auto [wb, vb] = b; return ((double)va/wa > (double)vb/wb); } int main() { int N, W; cin >> N >> W; vector> items(N+1); for (int i = 1; i <= N; i++) { ll wi, vi; cin >> wi >> vi; items[i] = {wi, vi}; } sort(items.begin() + 1, items.end(), comp); int item = 1, ans = 0; while (W > 0 && item <= N) { auto [w, v] = items[item++]; if (W >= w) { W -= w; ans += v; } } cout << ans << endl; return 0; }