#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
int T;
cin >> T; // Input number of test cases
while (T--) {
int n;
cin >> n; // Number of rounds
vector<int> s(n); // Scores for each round
for (int i = 0; i < n; ++i) {
cin >> s[i];
}
// Sorting Alice's possible responses to maximize her wins
int a, b, c;
cin >> a >> b >> c;
// Alice's score options sorted in descending order
vector<int> alice_scores = {a, b, c};
sort(alice_scores.rbegin(), alice_scores.rend());
// Count Bob's scores
vector<int> bob_scores(3, 0);
for (int i = 0; i < n; ++i) {
bob_scores[s[i]]++;
}
int win_count = 0;
// Try to match Alice's scores against Bob's scores to maximize her wins
for (int i = 0; i < 3; ++i) {
for (int j = 0; j < 3; ++j) {
if (alice_scores[i] > j && bob_scores[j] > 0) {
win_count++;
bob_scores[j]--;
break;
}
}
}
// Output the result
cout << win_count << endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8YWxnb3JpdGhtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4oKSB7CiAgICBpbnQgVDsKICAgIGNpbiA+PiBUOyAgLy8gSW5wdXQgbnVtYmVyIG9mIHRlc3QgY2FzZXMKICAgIHdoaWxlIChULS0pIHsKICAgICAgICBpbnQgbjsKICAgICAgICBjaW4gPj4gbjsgIC8vIE51bWJlciBvZiByb3VuZHMKICAgICAgICB2ZWN0b3I8aW50PiBzKG4pOyAgLy8gU2NvcmVzIGZvciBlYWNoIHJvdW5kCiAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyArK2kpIHsKICAgICAgICAgICAgY2luID4+IHNbaV07CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8vIFNvcnRpbmcgQWxpY2UncyBwb3NzaWJsZSByZXNwb25zZXMgdG8gbWF4aW1pemUgaGVyIHdpbnMKICAgICAgICBpbnQgYSwgYiwgYzsKICAgICAgICBjaW4gPj4gYSA+PiBiID4+IGM7CiAgICAgICAgCiAgICAgICAgLy8gQWxpY2UncyBzY29yZSBvcHRpb25zIHNvcnRlZCBpbiBkZXNjZW5kaW5nIG9yZGVyCiAgICAgICAgdmVjdG9yPGludD4gYWxpY2Vfc2NvcmVzID0ge2EsIGIsIGN9OwogICAgICAgIHNvcnQoYWxpY2Vfc2NvcmVzLnJiZWdpbigpLCBhbGljZV9zY29yZXMucmVuZCgpKTsKICAgICAgICAKICAgICAgICAvLyBDb3VudCBCb2IncyBzY29yZXMKICAgICAgICB2ZWN0b3I8aW50PiBib2Jfc2NvcmVzKDMsIDApOwogICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgKytpKSB7CiAgICAgICAgICAgIGJvYl9zY29yZXNbc1tpXV0rKzsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgaW50IHdpbl9jb3VudCA9IDA7CgogICAgICAgIC8vIFRyeSB0byBtYXRjaCBBbGljZSdzIHNjb3JlcyBhZ2FpbnN0IEJvYidzIHNjb3JlcyB0byBtYXhpbWl6ZSBoZXIgd2lucwogICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgMzsgKytpKSB7CiAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgMzsgKytqKSB7CiAgICAgICAgICAgICAgICBpZiAoYWxpY2Vfc2NvcmVzW2ldID4gaiAmJiBib2Jfc2NvcmVzW2pdID4gMCkgewogICAgICAgICAgICAgICAgICAgIHdpbl9jb3VudCsrOwogICAgICAgICAgICAgICAgICAgIGJvYl9zY29yZXNbal0tLTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLy8gT3V0cHV0IHRoZSByZXN1bHQKICAgICAgICBjb3V0IDw8IHdpbl9jb3VudCA8PCBlbmRsOwogICAgfQoKICAgIHJldHVybiAwOwp9Cg==