#include <iostream>
#include <fstream>
#include <vector>
#include <stack>
#include <queue>
#include <cstring>
#include <cmath>
#include <cstdlib>
#include <cstdio>
#include <algorithm>
#include <unordered_map>
#include <unordered_set>
#include <map>
#include <set>

using namespace std;

typedef long long ll;
typedef pair<int,int> PP;

/*
    freopen("input","r",stdin);
    freopen("output","w",stdout);
*/

int main() {
    ios::sync_with_stdio(false);
    int T;
    cin >> T;
    for (int z1 = 0;z1 < T;z1++) {
    	ll N,A,B,C,x,y,z,a,b,c;
    	int i,j,k;
    	cin >> N >> A >> B >> C;
    	vector<ll> L;
    	L.push_back(1);
    	ll one = 1;
    	for (i = 1; ;i++) {
    		x = i - A;
    		y = i - B;
    		z = i - C;
    		if (x < 1) {
    			a = 0;
    		} 
    		else {
    			a = L[x];
    		}
    		if (y < 1) {
    			b = 0;
    		} 
    		else {
    			b = L[y];
    		}
    		if (z < 1) {
    			c = 0;
    		} 
    		else {
    			c = L[z];
    		}
    		ll crt = max(one,a + b + c);
    		if (crt >= N) {
    			cout << i - 1 << endl;
    			break;
    		}
    		L.push_back(crt);
    	}
    }
    return 0;
}