#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int dp[1000005];
int gcd(int a,int b){
if(b==0) return a;
return gcd(b,a%b);
}
int lcm(int a,int b){
return a/gcd(a,b)*b;
}
int main(){
int t,icase=1;
int s[5],p[5];
long long v;
double profit;
scanf("%d",&t);
while(icase<=t){
int maxpointer=0;
double maxpro=0;
for(int i=1;i<=3;i++){
scanf("%d%d",&s[i],&p[i]);
profit=(p[i]*1.0)/s[i];
//printf("%llf\n",profit);
if(profit>maxpro){
maxpointer=i;
maxpro=profit;
}
}
//int bagsize=lcm(s[1],lcm(s[2],s[3]));
scanf("%lld",&v);
//long long greedy=(v-bagsize)/s[maxpointer];
//bagsize=(int)(v-greedy*s[maxpointer]);
//long long salary=greedy*p[maxpointer];
long long greedy=0,salary=0;
int bagsize=0;
if(v>100000){
greedy=(v-100000)/s[maxpointer];
bagsize=(int)(v-greedy*s[maxpointer]);
salary=greedy*p[maxpointer];
}
else
bagsize=(int)v;
memset(dp,0,sizeof(dp));
for(int i=1;i<=3;i++)
for(int j=s[i];j<=bagsize;j++)
dp[j]=max(dp[j],dp[j-s[i]]+p[i]);
printf("Case %d: %lld\n",icase++,salary+dp[bagsize]);
}
return 0;
}
/**************************************
Problem id : SDUT OJ 2408
Result : Accepted
Take Memory : 4368K
Take Time : 50MS
Submit Time : 2014-04-27 10:18:38
**************************************/