#include <iostream>
#include <climits>
#include <vector>

using namespace std;

typedef long long int Z;

constexpr Z M = 4000;
Z V[M];

int main() {
	cin.sync_with_stdio(false);
	cin.tie(nullptr);
	
	Z T;
	cin >> T;
	
	for(Z Te = 0; Te < T; ++Te) {
		Z N, A, B, C;
		cin >> N >> A >> B >> C;
		
		if(N == 1) {
			cout << "0\n";
			continue;
		}
		
		V[0] = 1;
		Z i;
		for(i = 1; i < M; ++i) {
			V[i] = V[i - 1];
			for(int a0 = 0; a0 < 2; ++a0) {
			for(int b0 = 0; b0 < 2; ++b0) {
			for(int c0 = 0; c0 < 2; ++c0) {
				if(a0 + b0 + c0 == 3) continue;
				if(!a0 && i < A) continue;
				if(!b0 && i < B) continue;
				if(!c0 && i < C) continue;
				Z maxA = a0 ? 0LL : V[i - A];
				Z maxB = b0 ? 0LL : V[i - B];
				Z maxC = c0 ? 0LL : V[i - C];
				V[i] = max(V[i], maxA + maxB + maxC);
			}
			}
			}
			if(V[i] >= N) break;
		}
		while(i == M) { }
		
		cout << i << '\n';
		
/*		int v = 0;
		for(int i = 0; i <= N; ++i) {
			while(V[v] < i) ++v;
			cout << i << ' ' << v << '\n';
		}
		
*/	}
	
	return 0;
}