N, P, K = map(int, input().split()) dp = [P] * (K + 1) for _ in range(N): T, B = map(int, input().split()) if T == 1: for i in reversed(range(K)): dp[i + 1] = max(dp[i + 1], dp[i] + B) else: for i in reversed(range(K)): dp[i + 1] = max(dp[i + 1], dp[i] * 2) if dp[-1] > 1000000000000000000: print(-1) exit(0) print(dp[-1])