import sys input = sys.stdin.buffer.readline sys.setrecursionlimit(10 ** 7) inf = 10 ** 10 N, V, C = map(int, input().split()) dp = [-inf] * (V + 1) dp[0] = 0 for _ in range(N): v, w = map(int, input().split()) memo = set() for i in range(v, V+1): if i - v in memo: if dp[i] < dp[i-v] + w: memo.add(i) dp[i] = dp[i-v] + w else: if dp[i] < dp[i-v] + w + C: memo.add(i) dp[i] = dp[i-v] + w + C print(max(dp))