#include<cstdio>
#include<iostream>
#include<vector>
#include<algorithm>
#include<string>
#include<cstring>
using namespace std;

typedef long long LL;
typedef vector<int> VI;

#define REP(i,n) for(int i=0, i##_len=(n); i<i##_len; ++i)
#define EACH(i,c) for(__typeof((c).begin()) i=(c).begin(),i##_end=(c).end();i!=i##_end;++i)
#define eprintf(s...) fprintf(stderr, s)

template<class T> inline void amin(T &a, const T &b) { if (b<a) a=b; }
template<class T> inline void amax(T &a, const T &b) { if (a<b) a=b; }

LL dp[4011];
LL N;
int A, B, C;

int main() {

    int T;
    scanf("%d", &T);
    REP ($, T) {
	scanf("%lld%d%d%d", &N, &A, &B, &C);
	if (A > B) swap(A, B);
	if (B > C) swap(B, C);
	if (A > B) swap(A, B);


	if (N == 1) {
	    puts("0");
	    continue;
	}
	memset(dp, 0xc0, sizeof dp);
	
	dp[0] = 1;
	for (int i=1; ; i++) {
	    dp[i] = dp[i-1];
	    if (i >= B) amax(dp[i], dp[i-A] + dp[i-B]);
	    if (i >= C) amax(dp[i], dp[i-A] + dp[i-B] + dp[i-C]);
	    if (dp[i] >= N) {
		printf("%d\n", i);
		break;
	    }
	}
    }
    
    return 0;
}