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