#include <list>
#include <map>
#include <set>
#include <deque>
#include <stack>
#include <queue>
#include <algorithm>
#include <sstream>
#include <iostream>
#include <iomanip>
#include <cstdio>
#include <cmath>
#include <cstdlib>
#include <memory.h>
#include <ctime>
#include <bitset>
#include <unordered_map>

using namespace std;

#define ABS(a) ((a>0)?a:-(a))
#define MIN(a,b) ((a<b)?(a):(b))
#define MAX(a,b) ((a<b)?(b):(a))
#define FOR(i,a,n) for (int i=(a);i<(n);++i)
#define FI(i,n) for (int i=0; i<(n); ++i)
#define pnt pair <int, int>
#define mp make_pair
#define PI 3.1415926535897
#define MEMS(a,b) memset(a,b,sizeof(a))
#define LL long long
#define U unsigned

LL dp[10010];

int main()
{
#ifdef Fcdkbear
	freopen("in.txt", "r", stdin);
	double beg = clock();
	//freopen("out.txt", "w", stdout);
#endif

	int t;
	cin >> t;
	while (t--)
	{
		LL n;
		int a, b, c;
		cin >> n >> a >> b >> c;
		if (n == 1)
		{
			cout << 0 << endl;
		}
		else {
			dp[0] = 1;
			FOR(i, 1, 10010)
			{
				dp[i] = 0;
				if (i >= a)
					dp[i] += dp[i - a];
				if (i >= b)
					dp[i] += dp[i - b];
				if (i >= c)
					dp[i] += dp[i - c];
				if (dp[i] >= n)
				{
					cout << i << endl;
					break;
				}
				dp[i] = MAX(dp[i], dp[i - 1]);
			}
		}
	}

#ifdef Fcdkbear
	double end = clock();
	fprintf(stderr, "*** Total time = %.3lf ***\n", (end - beg) / CLOCKS_PER_SEC);
#endif
	return 0;
}