N,P,K=map(int,input().split()) dp=[0]*(K+1) dp[0]=P for i in range(N): t,b=map(int,input().split()) if t==1: for j in range(K-1,-1,-1): if dp[j]!=0: dp[j+1]=max(dp[j+1],dp[j]+b) else: for j in range(K-1,-1,-1): if dp[j]!=0: dp[j+1]=max(dp[j+1],dp[j]*2) if max(dp)>10**18: print(-1) exit() print(dp[K])