ll@n,@m,@w,@a[n],@b[m],@c[];
rsortA(n,a);
rep(i,n-1){
	a[i+1]+=a[i];
}
ll sb[1<<m],sc[],sn=1;
sb[0]=0;sc[0]=0;
rep(i,m){
	rep(j,sn){
		sb[sn+j]=sb[j]+b[i];
		sc[sn+j]=sc[j]+c[i];
	}
	sn<<=1;
}
int z=0;
rep(j,sn){
	if(sb[j]<=w){
		ll d=w-sb[j];
		ll y=sc[j];
		if(d){
			y+=a[min(d-1,n-1)];
		}
		chmax(z,y);
	}
}
wt(z);