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])