#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
 
int main() {
    int T;
    cin >> T;  // 输入测试用例数量
    while (T--) {
        int n;
        cin >> n;  // 读取每个测试用例的回合数
        vector<int> s(n);  // 存储 Bob 的出拳序列
        for (int i = 0; i < n; ++i) {
            cin >> s[i];
        }
 
        // 读取 Alice 的出拳的三种可能的值
        int a, b, c;
        cin >> a >> b >> c;
 
        // 对 Alice 的出拳进行排序,确保使用最优的分数来打败 Bob
        vector<int> alice_scores = {a, b, c};
        sort(alice_scores.begin(), alice_scores.end());  // 升序排序
 
        // 统计 Bob 出拳的频率
        vector<int> bob_count(3, 0);  // Bob 的出拳 0, 1, 2 的计数
        for (int i = 0; i < n; ++i) {
            bob_count[s[i]]++;
        }
 
        int win_count = 0;
 
        // 贪心策略:优先选择 Alice 最小的可以打败 Bob 的分数
        // 使 Alice 能赢得更多的回合
        for (int i = 0; i < 3; ++i) {
            for (int j = 0; j < 3; ++j) {
                if (alice_scores[i] > j && bob_count[j] > 0) {
                    win_count++;  // Alice 获胜
                    bob_count[j]--;  // Bob 减少该出拳
                    break;  // Alice 出拳成功后跳出内层循环
                }
            }
        }
 
        // 输出当前测试用例的 Alice 获胜的次数
        cout << win_count << endl;
    }
 
    return 0;
}
 
				I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8YWxnb3JpdGhtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4oKSB7CiAgICBpbnQgVDsKICAgIGNpbiA+PiBUOyAgLy8g6L6T5YWl5rWL6K+V55So5L6L5pWw6YePCiAgICB3aGlsZSAoVC0tKSB7CiAgICAgICAgaW50IG47CiAgICAgICAgY2luID4+IG47ICAvLyDor7vlj5bmr4/kuKrmtYvor5XnlKjkvovnmoTlm57lkIjmlbAKICAgICAgICB2ZWN0b3I8aW50PiBzKG4pOyAgLy8g5a2Y5YKoIEJvYiDnmoTlh7rmi7Pluo/liJcKICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG47ICsraSkgewogICAgICAgICAgICBjaW4gPj4gc1tpXTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLy8g6K+75Y+WIEFsaWNlIOeahOWHuuaLs+eahOS4ieenjeWPr+iDveeahOWAvAogICAgICAgIGludCBhLCBiLCBjOwogICAgICAgIGNpbiA+PiBhID4+IGIgPj4gYzsKCiAgICAgICAgLy8g5a+5IEFsaWNlIOeahOWHuuaLs+i/m+ihjOaOkuW6j++8jOehruS/neS9v+eUqOacgOS8mOeahOWIhuaVsOadpeaJk+i0pSBCb2IKICAgICAgICB2ZWN0b3I8aW50PiBhbGljZV9zY29yZXMgPSB7YSwgYiwgY307CiAgICAgICAgc29ydChhbGljZV9zY29yZXMuYmVnaW4oKSwgYWxpY2Vfc2NvcmVzLmVuZCgpKTsgIC8vIOWNh+W6j+aOkuW6jwoKICAgICAgICAvLyDnu5/orqEgQm9iIOWHuuaLs+eahOmikeeOhwogICAgICAgIHZlY3RvcjxpbnQ+IGJvYl9jb3VudCgzLCAwKTsgIC8vIEJvYiDnmoTlh7rmi7MgMCwgMSwgMiDnmoTorqHmlbAKICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG47ICsraSkgewogICAgICAgICAgICBib2JfY291bnRbc1tpXV0rKzsKICAgICAgICB9CgogICAgICAgIGludCB3aW5fY291bnQgPSAwOwoKICAgICAgICAvLyDotKrlv4PnrZbnlaXvvJrkvJjlhYjpgInmi6kgQWxpY2Ug5pyA5bCP55qE5Y+v5Lul5omT6LSlIEJvYiDnmoTliIbmlbAKICAgICAgICAvLyDkvb8gQWxpY2Ug6IO96LWi5b6X5pu05aSa55qE5Zue5ZCICiAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAzOyArK2kpIHsKICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCAzOyArK2opIHsKICAgICAgICAgICAgICAgIGlmIChhbGljZV9zY29yZXNbaV0gPiBqICYmIGJvYl9jb3VudFtqXSA+IDApIHsKICAgICAgICAgICAgICAgICAgICB3aW5fY291bnQrKzsgIC8vIEFsaWNlIOiOt+iDnAogICAgICAgICAgICAgICAgICAgIGJvYl9jb3VudFtqXS0tOyAgLy8gQm9iIOWHj+WwkeivpeWHuuaLswogICAgICAgICAgICAgICAgICAgIGJyZWFrOyAgLy8gQWxpY2Ug5Ye65ouz5oiQ5Yqf5ZCO6Lez5Ye65YaF5bGC5b6q546vCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIC8vIOi+k+WHuuW9k+WJjea1i+ivleeUqOS+i+eahCBBbGljZSDojrfog5znmoTmrKHmlbAKICAgICAgICBjb3V0IDw8IHdpbl9jb3VudCA8PCBlbmRsOwogICAgfQoKICAgIHJldHVybiAwOwp9Cg==