#include using namespace std; #define rep(i, l, r) for (int i = (int)(l); i<(int)(r); i++) #define ll long long ll INF = 4e18; int main() { int N, M; cin >> N >> M; vector> CD(N); rep(i, 0, N) { cin >> CD[i].first >> CD[i].second; } sort(CD.rbegin(), CD.rend()); vector> dp(30); dp[0][0] = 0; rep(i, 0, N) { for (int j = 29; j >= 0; j--) { for (auto[key, val] : dp[j]) { // cout << i << " " << j << " " << key << " : " << val << endl; //選ぶ ll nkey = key + (1LL<