#include <map> #include <cstdio> #include <vector> #include <cstring> #include <iostream> #include <algorithm> using namespace std; #define LL long long const int lim = 110000; LL s1,v1,s2,v2,n; int main() { int T,kase=1; scanf("%d",&T); while(T--){ cin>>n>>s1>>v1>>s2>>v2; LL res = 0; if(n/s1 <= lim){ int num = n/s1; for(int i = 0 ;i <= num;i++){ LL ans = v1*i; int V = n - s1*i; ans += (V/s2)*v2; res =max(res,ans); } } else if(n/s2 <= lim){ int num = n/s2; for(int i = 0 ;i <= num;i++){ LL ans = v2*i; int V = n - s2*i; ans += (V/s1)*v1; res =max(res,ans); } } else { if(s2*v1 >= s1*v2){ for(int i=0;i<s1;i++) { LL ans = v2*i; int V = n - s2*i; ans += (V/s1)*v1; res =max(res,ans); } } else { for(int i=0;i<s2;i++) { LL ans = v1*i; int V = n - s1*i; ans += (V/s2)*v2; res =max(res,ans); } } } cout<<"Case #"<<kase++<<": "<<res<<endl; } return 0; }