n,p,k=map(int,input().split()) dp=[[0 for _ in range(k+1)]for _ in range(n+1)] dp[0][0]=p for i in range(1,n+1): s,t=map(int,input().split()) dp[i][0]=dp[i-1][0] for j in range(1,k+1): if s==1: dp[i][j]=max(dp[i-1][j],dp[i-1][j-1]+t) else: dp[i][j]=max(dp[i-1][j],dp[i-1][j-1]*2) if dp[i][j]>10**18: print(-1) exit() print(dp[n][k])