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