#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;
}