#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
 
int main() {
    int T;
    cin >> T;
 
    while (T--) {
        int n;
        cin >> n;
 
        vector<int> bob(n);
        for (int i = 0; i < n; i++) {
            char ch;
            cin >> ch;
            bob[i] = ch - '0';
        }
 
        int a, b, c;
        cin >> a >> b >> c;
 
        // 统计Bob出拳中0、1、2的数量
        int cnt0 = 0, cnt1 = 0, cnt2 = 0;
        for (int i = 0; i < n; i++) {
            if (bob[i] == 0) cnt0++;
            else if (bob[i] == 1) cnt1++;
            else cnt2++;
        }
 
        // 计算最大赢的回合数
        int wins = min(b, cnt0) + min(c, cnt1) + min(a, cnt2);
 
        cout << wins << endl;
    }
 
    return 0;
}
				I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8YWxnb3JpdGhtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4oKSB7CiAgICBpbnQgVDsKICAgIGNpbiA+PiBUOwogICAgCiAgICB3aGlsZSAoVC0tKSB7CiAgICAgICAgaW50IG47CiAgICAgICAgY2luID4+IG47CiAgICAgICAgCiAgICAgICAgdmVjdG9yPGludD4gYm9iKG4pOwogICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSB7CiAgICAgICAgICAgIGNoYXIgY2g7CiAgICAgICAgICAgIGNpbiA+PiBjaDsKICAgICAgICAgICAgYm9iW2ldID0gY2ggLSAnMCc7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGludCBhLCBiLCBjOwogICAgICAgIGNpbiA+PiBhID4+IGIgPj4gYzsKICAgICAgICAKICAgICAgICAvLyDnu5/orqFCb2Llh7rmi7PkuK0w44CBMeOAgTLnmoTmlbDph48KICAgICAgICBpbnQgY250MCA9IDAsIGNudDEgPSAwLCBjbnQyID0gMDsKICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykgewogICAgICAgICAgICBpZiAoYm9iW2ldID09IDApIGNudDArKzsKICAgICAgICAgICAgZWxzZSBpZiAoYm9iW2ldID09IDEpIGNudDErKzsKICAgICAgICAgICAgZWxzZSBjbnQyKys7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8vIOiuoeeul+acgOWkp+i1oueahOWbnuWQiOaVsAogICAgICAgIGludCB3aW5zID0gbWluKGIsIGNudDApICsgbWluKGMsIGNudDEpICsgbWluKGEsIGNudDIpOwogICAgICAgIAogICAgICAgIGNvdXQgPDwgd2lucyA8PCBlbmRsOwogICAgfQogICAgCiAgICByZXR1cm4gMDsKfQ==