#include using namespace std; #define rep(i,n) for(int i = 0; i < (n);i++) #define sz(x) int(x.size()) typedef long long ll; typedef pair P; int main(){ int n; cin >> n; string s; cin >> s; vector a(n); rep(i,n) cin >> a[i]; int Q; cin >> Q; vector q(Q); rep(i,Q) cin >> q[i]; vector num(n+1,0); vector k(n+1,0); rep(i,n) { if (s[i] == 'E') num[i+1] = num[i] + 1; else num[i+1] = num[i]; } rep(i,n) { k[i+1] = k[i] + a[i]; } for (auto e : q) { ll tmp = e; int cur = 0; int res = 0; rep(i,n) { auto itr = upper_bound(k.begin(), k.end(), tmp) - k.begin(); itr--; res = max(num[itr] - cur, res); tmp += a[i]; cur = num[i+1]; } cout << res << endl; } return 0; }