#include <iostream> #include <fstream> #include <vector> #include <stack> #include <queue> #include <cstring> #include <cmath> #include <cstdlib> #include <cstdio> #include <algorithm> #include <unordered_map> #include <unordered_set> #include <map> #include <set> using namespace std; typedef long long ll; typedef pair<int,int> PP; /* freopen("input","r",stdin); freopen("output","w",stdout); */ int main() { ios::sync_with_stdio(false); int T; cin >> T; for (int z1 = 0;z1 < T;z1++) { ll N,A,B,C,x,y,z,a,b,c; int i,j,k; cin >> N >> A >> B >> C; vector<ll> L; L.push_back(1); ll one = 1; for (i = 1; ;i++) { x = i - A; y = i - B; z = i - C; if (x < 1) { a = 0; } else { a = L[x]; } if (y < 1) { b = 0; } else { b = L[y]; } if (z < 1) { c = 0; } else { c = L[z]; } ll crt = max(one,a + b + c); if (crt >= N) { cout << i - 1 << endl; break; } L.push_back(crt); } } return 0; }