//并没有感觉到奇妙之处,可能是因为书上讲的太细了,感觉就是个经验题。。
#include<cstdio>
#include<iostream>
#include<string.h>
#include<algorithm>
using namespace std;
#define MAX 100000
int main()
{
int T;
cin >> T;
int kase = 0;
while(T--)
{
long long n, S1, V1, S2, V2;
long long values = 0;
cin >> n >> S1 >> V1 >> S2 >> V2;
if(n / S1 < MAX)
{
for(int i = 0; i <= n / S1; i++) values= max(values, i * V1 + (n - i * S1) / S2 * V2);
}
else if(n / S2 < MAX)
{
for(int i = 0; i <= n / S2; i++) values= max(values, i * V2 + (n - i * S2) / S1 * V1);
}
else if(S2 * V1 > S1 * V2)
{
for(int i = 0; i < S1; i++) values= max(values, i * V2 + (n - i * S2) / S1 * V1);
}
else
{
for(int i = 0; i < S2; i++) values = max(values, i * V1 + (n - i * S1) / S2 * V2);
}
cout << "Case #" << ++kase << ": " << values << endl;
}
return 0;
}