#include using namespace std; #define all(v) (v).begin(),(v).end() #define pb(a) push_back(a) #define rep(i, n) for(int i=0;i> n >> P >> k; vector dp(k + 1, -INF); dp[0] = P; rep(i, n) { ll t, b; cin >> t >> b; vector nx = dp; if(t == 2) { rep(j, k) { if(dp[j] * 2 > inf) { cout << -1 << endl; return 0; } chmax(nx[j + 1], dp[j] * 2); } } else { rep(j, k) { if(dp[j] + b > inf) { cout << -1 << endl; return 0; } chmax(nx[j + 1], dp[j] + b); } } swap(nx, dp); } cout << dp[k] << endl; return 0; }