#include<stdio.h>
struct A{
double w;
double v;
double xingjiabi;
}a[100],p;
void QuickSort(A a[],int numsize)
{
int i=0,j=numsize-1;
A p=a[0];
if(numsize>1)
{
while(i<j)
{
for(;j>i;j--)
if(a[j].xingjiabi<p.xingjiabi)
{
a[i]=a[j];
break;
}
for(;i<j;i++)
if(a[i].xingjiabi>p.xingjiabi)
{
a[j]=a[i];
break;
}
}
a[i]=p;
QuickSort(a,i);
QuickSort(a+i+1,numsize-1-i);
}
}
int main()
{
int n,i,wi,vi,C,Value;
scanf("%d",&n);//物品个数
for(i=0;i<n;i++)
{
scanf("%lf%lf",&a[i].w,&a[i].v);//重量 价值
a[i].xingjiabi = a[i].v/a[i].w;
}
QuickSort(a,n);
scanf("%d",&C);//背包容量
Value=0;
for(i=n-1;i>=0;i--)
{
if(a[i].w<=C)
{
Value+=a[i].v;
C-=a[i].w;
}
}
printf("%d\n",Value);
return 0;
}