#include using namespace std; typedef long long ll; #define rep(i, n) for(int i = 0; i < (int)(n); i++) const double PI = acos(-1); const ll MOD = 1000000007; using Graph = vector>; int main() { int N; cin >> N; string S; cin >> S; vector A(N); rep(i,N) cin >> A[i]; int Q; cin >> Q; vector K(Q); rep(i,Q) cin >> K[i]; vector ans(Q); rep(i,Q) { int right = 0; ll sum = 0; int enemy = 0; rep(left,N) { while (right < N && sum + A[right] <= K[i]) { sum += A[right]; if (S[right] == 'E') enemy++; right++; } ans[i] = max(ans[i],enemy); if (right == left) right++; else { sum -= A[left]; if (S[left]== 'E') enemy--; } } } rep(i,Q) cout << ans[i] << endl; }