#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
int t;
cin >> t;
while(t--){
int a, b, ab, ba, suma, sumb, con = 0, cur = 0;
string s;
vector<int> AB, BA, X;
cin >> s >> a >> b >> ab >> ba;
for(int i = 0; i < s.size(); i++){
if(s[i] == 'A')a--;
if(s[i] == 'B')b--;
if(i == 0 || s[i] == s[i-1]){
if(con % 2)X.push_back(con / 2);
else{
if(cur)BA.push_back(con / 2);
else AB.push_back(con / 2);
}
if(s[i] == 'A')cur = 0;
if(s[i] == 'B')cur = 1;
con = 1;
}
else{
con++;
}
}
// 在迴圈結束後處理最後的 con
if(con % 2) X.push_back(con / 2);
else {
if(cur) BA.push_back(con / 2);
else AB.push_back(con / 2);
}
sort(BA.begin(), BA.end());
sort(AB.begin(), AB.end());
sort(X.begin(), X.end());
auto processVector = [&](vector<int>& vec, int& a, int& b, int& ab, int& ba) {
for(int i = 0; i < vec.size(); i++){
cout << vec[i] << " ";
if(ba >= vec[i]){
ba -= vec[i];
a += vec[i];
b += vec[i];
}
else if(ab >= vec[i]){
ab -= vec[i];
a += vec[i];
b += vec[i];
}
}
cout << endl;
};
processVector(BA, a, b, ab, ba);
processVector(AB, a, b, ab, ba);
cout << a << b << endl;
processVector(X, a, b, ab, ba);
if(a < 0 || b < 0)cout << "No\n";
else cout << "Yes\n";
}
}
I2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPHZlY3Rvcj4KI2luY2x1ZGU8YWxnb3JpdGhtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4oKXsKICAgIGlvczo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICAgIGNpbi50aWUobnVsbHB0cik7CiAgICBpbnQgdDsKICAgIGNpbiA+PiB0OwogICAgd2hpbGUodC0tKXsKICAgICAgICBpbnQgYSwgYiwgYWIsIGJhLCBzdW1hLCBzdW1iLCBjb24gPSAwLCBjdXIgPSAwOwogICAgICAgIHN0cmluZyBzOwogICAgICAgIHZlY3RvcjxpbnQ+IEFCLCBCQSwgWDsKICAgICAgICBjaW4gPj4gcyA+PiBhID4+IGIgPj4gYWIgPj4gYmE7CgogICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCBzLnNpemUoKTsgaSsrKXsKICAgICAgICAgICAgaWYoc1tpXSA9PSAnQScpYS0tOwogICAgICAgICAgICBpZihzW2ldID09ICdCJyliLS07CiAgICAgICAgICAgIGlmKGkgPT0gMCB8fCBzW2ldID09IHNbaS0xXSl7CiAgICAgICAgICAgICAgICBpZihjb24gJSAyKVgucHVzaF9iYWNrKGNvbiAvIDIpOwogICAgICAgICAgICAgICAgZWxzZXsKICAgICAgICAgICAgICAgICAgICBpZihjdXIpQkEucHVzaF9iYWNrKGNvbiAvIDIpOwogICAgICAgICAgICAgICAgICAgIGVsc2UgQUIucHVzaF9iYWNrKGNvbiAvIDIpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYoc1tpXSA9PSAnQScpY3VyID0gMDsKICAgICAgICAgICAgICAgIGlmKHNbaV0gPT0gJ0InKWN1ciA9IDE7CiAgICAgICAgICAgICAgICBjb24gPSAxOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2V7CiAgICAgICAgICAgICAgICBjb24rKzsKICAgICAgICAgICAgfQogICAgICAgIH0KCQkKICAgICAgICAvLyDlnKjov7TlnIjntZDmnZ/lvozomZXnkIbmnIDlvoznmoQgY29uCiAgICAgICAgaWYoY29uICUgMikgWC5wdXNoX2JhY2soY29uIC8gMik7CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIGlmKGN1cikgQkEucHVzaF9iYWNrKGNvbiAvIDIpOwogICAgICAgICAgICBlbHNlIEFCLnB1c2hfYmFjayhjb24gLyAyKTsKICAgICAgICB9CgogICAgICAgIHNvcnQoQkEuYmVnaW4oKSwgQkEuZW5kKCkpOwogICAgICAgIHNvcnQoQUIuYmVnaW4oKSwgQUIuZW5kKCkpOwogICAgICAgIHNvcnQoWC5iZWdpbigpLCBYLmVuZCgpKTsKCiAgICAgICAgYXV0byBwcm9jZXNzVmVjdG9yID0gWyZdKHZlY3RvcjxpbnQ+JiB2ZWMsIGludCYgYSwgaW50JiBiLCBpbnQmIGFiLCBpbnQmIGJhKSB7CiAgICAgICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCB2ZWMuc2l6ZSgpOyBpKyspewogICAgICAgICAgICAJY291dCA8PCB2ZWNbaV0gPDwgIiAiOwogICAgICAgICAgICAgICAgaWYoYmEgPj0gdmVjW2ldKXsKICAgICAgICAgICAgICAgICAgICBiYSAtPSB2ZWNbaV07CiAgICAgICAgICAgICAgICAgICAgYSArPSB2ZWNbaV07CiAgICAgICAgICAgICAgICAgICAgYiArPSB2ZWNbaV07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIGlmKGFiID49IHZlY1tpXSl7CiAgICAgICAgICAgICAgICAgICAgYWIgLT0gdmVjW2ldOwogICAgICAgICAgICAgICAgICAgIGEgKz0gdmVjW2ldOwogICAgICAgICAgICAgICAgICAgIGIgKz0gdmVjW2ldOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGNvdXQgPDwgZW5kbDsKICAgICAgICB9OwoKICAgICAgICBwcm9jZXNzVmVjdG9yKEJBLCBhLCBiLCBhYiwgYmEpOwogICAgICAgIHByb2Nlc3NWZWN0b3IoQUIsIGEsIGIsIGFiLCBiYSk7CiAgICAgICAgICAgICAgICBjb3V0IDw8IGEgPDwgYiA8PCBlbmRsOwoKICAgICAgICBwcm9jZXNzVmVjdG9yKFgsIGEsIGIsIGFiLCBiYSk7CgogICAgICAgIGlmKGEgPCAwIHx8IGIgPCAwKWNvdXQgPDwgIk5vXG4iOwogICAgICAgIGVsc2UgY291dCA8PCAiWWVzXG4iOwogICAgfQogICAgCn0=