#include <cmath>
#include <cstdio>
#include <vector>
#include <iostream>
#include <algorithm>
#include <map>
#include <memory.h>
using namespace std;

int a, b, c;
long long dp[60 * 3 * 100];

int solve() {
    long long n;
    scanf("%lld%d%d%d", &n, &a, &b, &c);
    if (b < a) swap(a, b);
    if (c < a) swap(c, a);
    if (c < b) swap(b, c);
    
    if (n == 1)
        return 0;
    
    memset(dp, 0, sizeof(dp));
    dp[0] = 1;
    for (int i = 1; ; ++i) {
        dp[i] = dp[i - 1];
        
        long long cur = 0;
        if (i >= a)
            cur += dp[i - a];
        if (i >= b)
            cur += dp[i - b];
        if (i >= c)
            cur += dp[i - c];
        dp[i] = max(dp[i], cur);
        if (cur >= n)
            return i;
        
        cur = 0;
        if (i >= a)
            cur += dp[i - a];
        if (i >= b)
            cur += dp[i - b];
        dp[i] = max(dp[i], cur);
        if (cur >= n)
            return i;
//        cout << i << "  " << dp[i] << endl;
    }
    return -1;
}

int main() {
    /* Enter your code here. Read input from STDIN. Print output to STDOUT */
    int T;
    scanf("%d", &T);
    while (T--) {
        printf("%d\n", solve());
    }
    return 0;
}