#include <iostream>
#include <vector>
#include <set>
#include <iomanip>
#include <algorithm>
#include <functional>
#include <stdio.h>
#include <cmath>
#include <queue>
#include <string>
#include <map>
#include <complex>
#include <chrono>
#include <random>
#include <stack>
#include <set>
#include <fstream>
#include <unordered_map>
using namespace std;
int main() {
int t;
cin>>t;
for(int i=0;i<t;i++){
int n;
cin>>n;
int arr[n];
string s;
cin>>s;
vector<int> v;
for(int i =0;i<n;i++){
cin>>arr[i];
if(s[i]==0){
v.push_back(arr[i]);
}
}
int ans= *min_element(v.begin(), v.end());
cout<<ans<<endl;
}
return 0;
}
CiNpbmNsdWRlIDxpb3N0cmVhbT4KI2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPHNldD4KI2luY2x1ZGUgPGlvbWFuaXA+CiNpbmNsdWRlIDxhbGdvcml0aG0+CiNpbmNsdWRlIDxmdW5jdGlvbmFsPgojaW5jbHVkZSA8c3RkaW8uaD4KI2luY2x1ZGUgPGNtYXRoPgojaW5jbHVkZSA8cXVldWU+CiNpbmNsdWRlIDxzdHJpbmc+CiNpbmNsdWRlIDxtYXA+CiNpbmNsdWRlIDxjb21wbGV4PgojaW5jbHVkZSA8Y2hyb25vPgojaW5jbHVkZSA8cmFuZG9tPgojaW5jbHVkZSA8c3RhY2s+CiNpbmNsdWRlIDxzZXQ+CiNpbmNsdWRlIDxmc3RyZWFtPgojaW5jbHVkZSA8dW5vcmRlcmVkX21hcD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBtYWluKCkgewppbnQgdDsKY2luPj50Owpmb3IoaW50IGk9MDtpPHQ7aSsrKXsKICAgIGludCBuOwogICAgY2luPj5uOwogICAgaW50IGFycltuXTsKICAgIHN0cmluZyBzOwogICAgY2luPj5zOwogICAgdmVjdG9yPGludD4gdjsKICAgIGZvcihpbnQgaSA9MDtpPG47aSsrKXsKICAgIAljaW4+PmFycltpXTsKICAgICAgICBpZihzW2ldPT0wKXsKICAgICAgICB2LnB1c2hfYmFjayhhcnJbaV0pOwogICAgICAgIH0KICAgCiAgICB9CiAgICBpbnQgYW5zPSAqbWluX2VsZW1lbnQodi5iZWdpbigpLCB2LmVuZCgpKTsKICAgIGNvdXQ8PGFuczw8ZW5kbDsKICAgIAp9CglyZXR1cm4gMDsKfQo=