#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
using namespace std;
int main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
int t;
cin >> t;
while(t--){
int n, k;
cin >> n >> k;
string s;
cin >> s;
vector<int> a(n);
int maxA = 0;
for (int i = 0; i < n; i++){
cin >> a[i];
maxA = max(maxA, a[i]);
}
auto canAchieve = [&](int X) -> bool {
int ops = 0;
for (int i = 0; i < n; ){
if(a[i] > X && s[i] == 'R'){
i++;
continue;
}
bool needBlue = false;
int j = i;
while(j < n && !(a[j] > X && s[j]=='R')){
if(a[j] > X && s[j]=='B') needBlue = true;
j++;
}
if(needBlue) ops++;
i = j;
}
return ops <= k;
};
int lo = 0, hi = maxA, ans = maxA;
while(lo <= hi){
int mid = lo + (hi - lo) / 2;
if(canAchieve(mid)){
ans = mid;
hi = mid - 1;
} else {
lo = mid + 1;
}
}
cout << ans << "\n";
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8YWxnb3JpdGhtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4oKXsKICAgIGlvczo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICAgIGNpbi50aWUobnVsbHB0cik7CgogICAgaW50IHQ7CiAgICBjaW4gPj4gdDsKICAgIHdoaWxlKHQtLSl7CiAgICAgICAgaW50IG4sIGs7CiAgICAgICAgY2luID4+IG4gPj4gazsKICAgICAgICBzdHJpbmcgczsKICAgICAgICBjaW4gPj4gczsKICAgICAgICB2ZWN0b3I8aW50PiBhKG4pOwogICAgICAgIGludCBtYXhBID0gMDsKICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKyl7CiAgICAgICAgICAgIGNpbiA+PiBhW2ldOwogICAgICAgICAgICBtYXhBID0gbWF4KG1heEEsIGFbaV0pOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBhdXRvIGNhbkFjaGlldmUgPSBbJl0oaW50IFgpIC0+IGJvb2wgewogICAgICAgICAgICBpbnQgb3BzID0gMDsKICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyApewogICAgICAgICAgICAgICAgaWYoYVtpXSA+IFggJiYgc1tpXSA9PSAnUicpewogICAgICAgICAgICAgICAgICAgIGkrKzsKICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGJvb2wgbmVlZEJsdWUgPSBmYWxzZTsKICAgICAgICAgICAgICAgIGludCBqID0gaTsKICAgICAgICAgICAgICAgIHdoaWxlKGogPCBuICYmICEoYVtqXSA+IFggJiYgc1tqXT09J1InKSl7CiAgICAgICAgICAgICAgICAgICAgaWYoYVtqXSA+IFggJiYgc1tqXT09J0InKSBuZWVkQmx1ZSA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgaisrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYobmVlZEJsdWUpIG9wcysrOwogICAgICAgICAgICAgICAgaSA9IGo7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIG9wcyA8PSBrOwogICAgICAgIH07CiAgICAgICAgCiAgICAgICAgaW50IGxvID0gMCwgaGkgPSBtYXhBLCBhbnMgPSBtYXhBOwogICAgICAgIHdoaWxlKGxvIDw9IGhpKXsKICAgICAgICAgICAgaW50IG1pZCA9IGxvICsgKGhpIC0gbG8pIC8gMjsKICAgICAgICAgICAgaWYoY2FuQWNoaWV2ZShtaWQpKXsKICAgICAgICAgICAgICAgIGFucyA9IG1pZDsKICAgICAgICAgICAgICAgIGhpID0gbWlkIC0gMTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIGxvID0gbWlkICsgMTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAKICAgICAgICBjb3V0IDw8IGFucyA8PCAiXG4iOwogICAgfQogICAgcmV0dXJuIDA7Cn0=