N, V, C = map(int, input().split()) A = [list(map(int, input().split())) for _ in range(N)] INF = 10**18 dp = [-INF]*(V+1) dp[0] = 0 for v, w in A: for i in range(V, -1, -1): if i+v > V: continue dp[i+v] = max(dp[i+v], dp[i]+w+C) for i in range(V+1): if i+v > V: break dp[i+v] = max(dp[i+v], dp[i]+w) print(max(dp))