#include using namespace std; int main(){ ios::sync_with_stdio(false); cin.tie(nullptr); int N,V,C; cin>>N>>V>>C; vector>A(N); for(auto &i:A)cin>>i[0]>>i[1]; vector>dp(N*2+1,vector(V+1,-1e9)); dp[0][0]=0; for(int i=0;i=0;j--){ dp[i*2+1][j]=max(dp[i*2+1][j],dp[i*2][j]); if(j+A[i][0]<=V){ dp[i*2+1][j+A[i][0]]=max(dp[i*2+1][j+A[i][0]],dp[i*2][j]+A[i][1]+C); } } for(int j=0;j<=V;j++){ dp[i*2+2][j]=max(dp[i*2+2][j],dp[i*2+1][j]); if(j+A[i][0]<=V){ dp[i*2+2][j+A[i][0]]=max(dp[i*2+2][j+A[i][0]],dp[i*2+2][j]+A[i][1]); } } } cout<<*max_element(dp[N*2].begin(),dp[N*2].end())<<'\n'; }