#include <bits/stdc++.h> #include <atcoder/all> using namespace std; using namespace atcoder; using ll=long long; ll inf=1e18+1; int main() { int n,k; ll p; cin>>n>>p>>k; vector<int> t(n); vector<ll> b(n); for(int i=0;i<n;i++)cin>>t[i]>>b[i]; vector<vector<ll>> dp(n+1,vector<ll>(k+1)); dp[0][0]=p; for(int i=0;i<n;i++){ for(int j=0;j<=k;j++){ if(j==0)dp[i+1][j]=dp[i][j]; else{ dp[i+1][j]=min(inf,max(dp[i][j],(t[i]==1?dp[i][j-1]+b[i]:dp[i][j-1]*2))); } } } if(dp[n][k]==inf)cout<<-1<<endl; else cout<<dp[n][k]<<endl; }