#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; }