#include<iostream> using namespace std; long long f[1001000],t,n,a[3]; int brut[101],mini,maksi; int main(){ f[0]=1; brut[0]=-10000000; brut[1]=0; cin>>t; for(int r=0;r<t;r++){ cin>>n; for(int i=0;i<3;i++){ cin>>a[i]; } for(int i=2;i<78;i++){ brut[i]=100000000; mini=1000000; for(int j=0;j<=i;j++){ for(int k=j;k<=i;k++){ maksi=0; if(a[0]+brut[j]>maksi) maksi=a[0]+brut[j]; if(a[1]+brut[k-j]>maksi){ maksi=a[1]+brut[k-j]; } if(a[2]+brut[i-k]>maksi){ maksi=a[2]+brut[i-k]; } //cout<<maksi<<endl; if(mini>maksi){ mini=maksi; } //cout<<mini<<endl; } } brut[i]=mini; // cout<<brut[i]<<" "; } mini=10000; for(int i=0;i<3;i++){ if(a[i]<mini) mini=a[i]; } for(int i=0;i<mini;i++){ f[i]=1; } mini--; for(int i=1;i<49;i++){ if(brut[i]<brut[i+1]){ for(int j=brut[i];j<brut[i+1];j++){ f[j]=i; } mini=brut[i+1]-1; } } int p=1; for(int i=0;i<mini+1;i++){ if(f[i]>=n){ cout<<i<<endl; p=0; maksi=i; break; } } for(int i=mini+1;i<10000000 && p;i++){ f[i]=0; for(int j=0;j<3;j++){ if(a[j]<=i) f[i]+=f[i-a[j]]; } if(f[i]>=n){ cout<<i<<endl; maksi=i; break; } } } return 0; }