#include <bits/stdc++.h>
using namespace std;
const int MAX=105;
int m[10005][105];
int cnt(int w,int n,int b[MAX][2]){
if(w<0)return -1e9;
if(n<0)return 0;
if(m[w][n]!=-1)return m[w][n];
int take=cnt(w-b[n][0],n-1,b)+b[n][1];
int skip=cnt(w,n-1,b);
m[w][n]=max(take,skip);
return m[w][n];
}
int main(){
int num,weight;
while(cin>>num){
int a[MAX][2];
for(int i=0;i<num;i++) cin>>a[i][0]>>a[i][1];
cin>>weight;
memset(m,-1,sizeof(m));
cout<<cnt(weight,num-1,a)<<endl;}
return 0;
}