N,V,C = map(int,input().split()) INF = float('inf') dp = [-INF] * (V+1) dp[0] = 0 for _ in range(N): ndp = [-INF] * (V+1) vi,wi = map(int,input().split()) for v in range(V+1): if v - vi >= 0: ndp[v] = max(dp[v-vi] + C+wi,ndp[v-vi] + wi,ndp[v]) ndp[v] = max(dp[v],ndp[v]) dp = ndp print(max(ndp))