#include <algorithm>
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <iostream>
#include <sstream>
#include <map>
#include <set>
#include <queue>
#include <vector>

using namespace std;

#define FOR(prom, a, b) for(int prom = (a); prom < (b); prom++)
#define FORD(prom, a, b) for(int prom = (a); prom > (b); prom--)
#define FORDE(prom, a, b) for(int prom = (a); prom >= (b); prom--)

#define DRI(a) int a; scanf("%d ", &a);
#define DRII(a, b) int a, b; scanf("%d %d ", &a, &b);
#define DRIII(a, b, c) int a, b, c; scanf("%d %d %d ", &a, &b, &c);
#define DRIIII(a, b, c, d) int a, b, c, d; scanf("%d %d %d %d ", &a, &b, &c, &d);
#define RI(a) scanf("%d ", &a);
#define RII(a, b) scanf("%d %d ", &a, &b);
#define RIII(a, b, c) scanf("%d %d %d ", &a, &b, &c);
#define RIIII(a, b, c, d) scanf("%d %d %d %d ", &a, &b, &c, &d);

#define PB push_back
#define MP make_pair

#define ff first
#define ss second
#define vi vector<int>
#define pii pair<int,int>

#define ll long long
#define ull unsigned long long

#define MM(co, cim) memset((co), (cim), sizeof((co)))

#define DEB(x) cerr << ">>> " << #x << " : " << x << endl;

ll dyn[4000];

int main ()
{
  DRI(T);
    while(T--) {
        ll N;
        cin >> N;
        DRIII(A,B,C);
        dyn[0] = 1;
        if(N == 1LL) {
            cout << 0 << endl;
            continue;
        }
        FOR(i,1,4000) {
            ll nN = 0;
            if(A <= i) nN += dyn[i-A];
            if(B <= i) nN += dyn[i-B];
            if(C <= i) nN += dyn[i-C];
            dyn[i] = max(dyn[i-1],nN);
            if(dyn[i] >= N) {
                cout << i << endl;
                break;
            }
        }
    }
  return 0;
}