#include<iostream> using namespace std; typedef long long int lli; lli v[200]; lli findNumber(){ lli N,A,B,C,q; // M(D) = M(D-A) + M(D-B) + M(D-C) ; M negativo es 0 // queremos D minimo tal que M(D)>=N cin >> N >> A >> B >> C; q = min(A,min(B,C)); if(N==1) return 0; for(lli i = 0; i < q;i++){ v[i] = 1; } for(lli d = q ; d < 3200; d++){ v[d%101] = ((d>=A)? v[(d-A)%101] : 0) + ((d>=B)? v[(d-B)%101] : 0) + ((d>=C)? v[(d-C)%101] : 0); if(v[d%101] >=N) return d; } return -1; } int main(){ int T; cin >> T; while(T--) cout << findNumber() << endl; }