#include <iostream> #include <cstdio> #include <algorithm> #include <map> #define inf (1ll<<60) using namespace std; long long n, x, y,z, ret, ret1, ret2, ret3; int a, b, c; long long p[10000]; bool check(int h) { p[h] = 1; for(int i=h;i>=0;i--) { p[i] = 0; if(i+a<=h) p[i] += p[i+a]; if(i+b<=h) p[i] += p[i+b]; if(i+c<=h) p[i] += p[i+c]; if(p[i] == 0) p[i] = 1; if(p[i] >= n) return 1; } return p[0]>=n; } int solve(long long n) { int low = 0, high = 8000, mid; while(low+1<high) { mid = (low+high)/2; if(!check(mid)) low = mid; else high = mid; } return high; } int main() { int T; scanf("%d", &T); while(T--) { scanf("%lld%d%d%d", &n, &a, &b, &c); // printf("%d",check(5)); if(a==0) printf("%d\n", min(b, c)); else if(b==0) printf("%d\n", min(c, a)); else if(c==0) printf("%d\n", min(b, a)); else { if(n==1) printf("0\n"); else printf("%d\n", solve(n)); } } }