#include <bits/stdc++.h>
#define fi first
#define endl '\n'
#define se second
#define int long long
#define getName(x) #x
#define vi std::vector<int>
#define isz(v) (int) v.size()
#define pii std::pair<int, int>
#define all(v) v.begin(), v.end()
#define loop cerr << "here" << endl;
#define breakLoop if(TIME > 1) break;
#define TIME 1.0 * clock() / CLOCKS_PER_SEC
using namespace std;
typedef long long ll;
template <typename T> void maximize(T &a, T b){if(a < b) a = b;}
template <typename T> void minimize(T &a, T b){if(a > b) a = b;}
const int MAXN = 4e5 + 7;
const int inf32 = 1e9;
int f[MAXN], a[MAXN], n, t, x, y, z;
int cur1[3];
int cur2[3];
bool valid(int a, int b, int c){
cur1[0]=a,cur1[1]=b,cur1[2]=c;
int p[3] = {cur2[0], cur2[1], cur2[2]};
do{
bool check = 1;
int curSum = 0, curIdx = 0;
for(int i = 0; i < 3; i++){
int val = cur1[i];
while(curSum < val and curIdx < 3){
curSum += p[curIdx];
curIdx++;
}
if(curSum >= val){
curSum = 0;
continue;
}
check = 0;
break;
}
if(check) return 1;
}while(next_permutation(p, p + 3));
return 0;
}
signed main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
#define task "fight"
if (fopen(task".inp", "r")){
freopen(task".inp", "r", stdin);
freopen(task".out", "w", stdout);
}
cin >> t;
//t = min(t, 400005);
while(t--){
cin >> n;
cin >> x >> y >> z;
for(int i = 1; i <= n; i++) cin >> a[i];
// if(x > y) swap(x, y);
// if(y > z) swap(y, z);
// if(x > z) swap(x, z);
fill(f + 1, f + 1 + n, inf32);
cur2[0]=x,cur2[1]=y,cur2[2]=z;
sort(cur2, cur2 + 3);
for(int i = 1; i <= n; i++){
if(f[i - 1] != inf32 and valid(0, 0, a[i])) f[i] = f[i - 1] + 1;
if(i > 1 and f[i - 2] != inf32 and valid(0, a[i - 1], a[i])) minimize(f[i], f[i - 2] + 1);
if(i > 2 and f[i - 3] != inf32 and valid(a[i - 2], a[i - 1], a[i]))minimize(f[i], f[i - 3] + 1);
}
cout << (f[n] == inf32 ? -1 : f[n]) << ' ';
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgZmkgZmlyc3QKI2RlZmluZSBlbmRsICdcbicKI2RlZmluZSBzZSBzZWNvbmQKI2RlZmluZSBpbnQgbG9uZyBsb25nCiNkZWZpbmUgZ2V0TmFtZSh4KSAjeAojZGVmaW5lIHZpIHN0ZDo6dmVjdG9yPGludD4KI2RlZmluZSBpc3oodikgKGludCkgdi5zaXplKCkKI2RlZmluZSBwaWkgc3RkOjpwYWlyPGludCwgaW50PgojZGVmaW5lIGFsbCh2KSB2LmJlZ2luKCksIHYuZW5kKCkKI2RlZmluZSBsb29wIGNlcnIgPDwgImhlcmUiIDw8IGVuZGw7CiNkZWZpbmUgYnJlYWtMb29wIGlmKFRJTUUgPiAxKSBicmVhazsKI2RlZmluZSBUSU1FIDEuMCAqIGNsb2NrKCkgLyBDTE9DS1NfUEVSX1NFQwp1c2luZyBuYW1lc3BhY2Ugc3RkOwp0eXBlZGVmIGxvbmcgbG9uZyBsbDsKCgp0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gdm9pZCBtYXhpbWl6ZShUICZhLCBUIGIpe2lmKGEgPCBiKSBhID0gYjt9CnRlbXBsYXRlIDx0eXBlbmFtZSBUPiB2b2lkIG1pbmltaXplKFQgJmEsIFQgYil7aWYoYSA+IGIpIGEgPSBiO30KY29uc3QgaW50IE1BWE4gPSA0ZTUgKyA3Owpjb25zdCBpbnQgaW5mMzIgPSAxZTk7CgppbnQgZltNQVhOXSwgYVtNQVhOXSwgbiwgdCwgeCwgeSwgejsKaW50IGN1cjFbM107CmludCBjdXIyWzNdOwoKYm9vbCB2YWxpZChpbnQgYSwgaW50IGIsIGludCBjKXsKICAgIGN1cjFbMF09YSxjdXIxWzFdPWIsY3VyMVsyXT1jOwogICAgaW50IHBbM10gPSB7Y3VyMlswXSwgY3VyMlsxXSwgY3VyMlsyXX07CiAgICBkb3sKICAgICAgICBib29sIGNoZWNrID0gMTsKICAgICAgICBpbnQgY3VyU3VtID0gMCwgY3VySWR4ID0gMDsKICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgMzsgaSsrKXsKICAgICAgICAgICAgaW50IHZhbCA9IGN1cjFbaV07CiAgICAgICAgICAgIHdoaWxlKGN1clN1bSA8IHZhbCBhbmQgY3VySWR4IDwgMyl7CiAgICAgICAgICAgICAgICBjdXJTdW0gKz0gcFtjdXJJZHhdOwogICAgICAgICAgICAgICAgY3VySWR4Kys7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYoY3VyU3VtID49IHZhbCl7CiAgICAgICAgICAgICAgICBjdXJTdW0gPSAwOwogICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY2hlY2sgPSAwOwogICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgaWYoY2hlY2spIHJldHVybiAxOwogICAgfXdoaWxlKG5leHRfcGVybXV0YXRpb24ocCwgcCArIDMpKTsKICAgIHJldHVybiAwOwp9CgpzaWduZWQgbWFpbigpewogICAgaW9zOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwogICAgY2luLnRpZShudWxscHRyKTsKICAgICNkZWZpbmUgdGFzayAiZmlnaHQiCiAgICBpZiAoZm9wZW4odGFzayIuaW5wIiwgInIiKSl7CiAgICAgICAgZnJlb3Blbih0YXNrIi5pbnAiLCAiciIsIHN0ZGluKTsKICAgICAgICBmcmVvcGVuKHRhc2siLm91dCIsICJ3Iiwgc3Rkb3V0KTsKICAgIH0KCiAgICBjaW4gPj4gdDsKICAgIC8vdCA9IG1pbih0LCA0MDAwMDUpOwogICAgd2hpbGUodC0tKXsKICAgICAgICBjaW4gPj4gbjsKICAgICAgICBjaW4gPj4geCA+PiB5ID4+IHo7CiAgICAgICAgZm9yKGludCBpID0gMTsgaSA8PSBuOyBpKyspIGNpbiA+PiBhW2ldOwovLyAgICAgICAgaWYoeCA+IHkpIHN3YXAoeCwgeSk7Ci8vICAgICAgICBpZih5ID4geikgc3dhcCh5LCB6KTsKLy8gICAgICAgIGlmKHggPiB6KSBzd2FwKHgsIHopOwogICAgICAgIGZpbGwoZiArIDEsIGYgKyAxICsgbiwgaW5mMzIpOwogICAgICAgIGN1cjJbMF09eCxjdXIyWzFdPXksY3VyMlsyXT16OwogICAgICAgIHNvcnQoY3VyMiwgY3VyMiArIDMpOwogICAgICAgIGZvcihpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKXsKICAgICAgICAgICAgaWYoZltpIC0gMV0gIT0gaW5mMzIgYW5kIHZhbGlkKDAsIDAsIGFbaV0pKSBmW2ldID0gZltpIC0gMV0gKyAxOwogICAgICAgICAgICBpZihpID4gMSBhbmQgZltpIC0gMl0gIT0gaW5mMzIgYW5kIHZhbGlkKDAsIGFbaSAtIDFdLCBhW2ldKSkgbWluaW1pemUoZltpXSwgZltpIC0gMl0gKyAxKTsKICAgICAgICAgICAgaWYoaSA+IDIgYW5kIGZbaSAtIDNdICE9IGluZjMyIGFuZCB2YWxpZChhW2kgLSAyXSwgYVtpIC0gMV0sIGFbaV0pKW1pbmltaXplKGZbaV0sIGZbaSAtIDNdICsgMSk7CiAgICAgICAgfQogICAgICAgIGNvdXQgPDwgKGZbbl0gPT0gaW5mMzIgPyAtMSA6IGZbbl0pIDw8ICcgJzsKICAgIH0KCgp9Cg==