#include <iostream> #include <climits> #include <vector> using namespace std; typedef long long int Z; constexpr Z M = 4000; Z V[M]; int main() { cin.sync_with_stdio(false); cin.tie(nullptr); Z T; cin >> T; for(Z Te = 0; Te < T; ++Te) { Z N, A, B, C; cin >> N >> A >> B >> C; if(N == 1) { cout << "0\n"; continue; } V[0] = 1; Z i; for(i = 1; i < M; ++i) { V[i] = V[i - 1]; for(int a0 = 0; a0 < 2; ++a0) { for(int b0 = 0; b0 < 2; ++b0) { for(int c0 = 0; c0 < 2; ++c0) { if(a0 + b0 + c0 == 3) continue; if(!a0 && i < A) continue; if(!b0 && i < B) continue; if(!c0 && i < C) continue; Z maxA = a0 ? 0LL : V[i - A]; Z maxB = b0 ? 0LL : V[i - B]; Z maxC = c0 ? 0LL : V[i - C]; V[i] = max(V[i], maxA + maxB + maxC); } } } if(V[i] >= N) break; } while(i == M) { } cout << i << '\n'; /* int v = 0; for(int i = 0; i <= N; ++i) { while(V[v] < i) ++v; cout << i << ' ' << v << '\n'; } */ } return 0; }