#include using namespace std; using ll = long long; #define rep(i,n) for (int i=0;i<(int)(n);i++) int main(){ int n,p,c; cin>>n>>p>>c; vector v(n); vector w(n); rep(i,n) cin>>v.at(i)>>w.at(i); vector> dp(2*n+1,vector(p+1,0)); rep(i,n){ rep(j,p){ for(ll l=1;j+l*v.at(i)<=p;l++) dp[i+1][j+l*v.at(i)]=max(dp[i+1][j+l*v.at(i)],dp[i][j]+l*w.at(i)); dp[i+1][j+1]=max(dp[i+1][j+1],max(dp[i][j+1],dp[i+1][j])); } } rep(i,n){ rep(j,p){ if(j+v.at(i)<=p) dp[n+i+1][j+v.at(i)]=max(dp[n+i+1][j+v.at(i)],dp[n+i][j]+w.at(i)+c); dp[n+i+1][j+1]=max(dp[n+i+1][j+1],max(dp[n+i][j+1],dp[n+i+1][j])); } } /* for(auto dd:dp){ for(auto d:dd) cout<