#include using namespace std; typedef long long ll; int main() { int N; string S; cin >> N >> S; ll A[N]; for (int i = 0; i < N; i++) { cin >> A[i]; } int Q; cin >> Q; ll K[Q]; for (int i = 0; i < Q; i++) { cin >> K[i]; } ll b[N + 1]{}; int c[N + 1]{}; for (int i = 0; i < N; i++) { b[i + 1] = b[i] + A[i]; if (S[i] == 'E') { c[i + 1] = c[i] + 1; } else { c[i + 1] = c[i]; } } vector d(N + 1); fill(d.begin(), d.end(), LLONG_MAX); d[0] = 0; for (int i = 0; i < N; i++) { for (int j = i + 1; j <= N; j++) { int t = c[j] - c[i]; d[t] = min(d[t], b[j] - b[i]); } } for (int i = 0; i < Q; i++) { int l = -1; int r = N + 1; while (r - l > 1) { int m = (l + r) / 2; if (d[m] <= K[i]) { l = m; } else { r = m; } } cout << l << "\n"; } return 0; }