#include #define rep(i, n) for (int i = 0; i < n; ++i) typedef long long ll; using namespace std; int main() { cin.tie(0); ios_base::sync_with_stdio(false); int N, W, C; cin >> N >> W >> C; vector v(N), w(N); rep(i, N) cin >> w[i] >> v[i]; vector dp(N + 1, vector(W + 1)); rep(i, N) { rep(j, W + 1) { if (j < w[i]) dp[i + 1][j] = dp[i][j]; else { dp[i + 1][j] = max(dp[i][j], dp[i + 1][j - w[i]] + v[i]); dp[i + 1][j] = max(dp[i + 1][j], dp[i][j - w[i]] + v[i] + C); } } } cout << dp[N][W] << "\n"; return 0; }