import sys def solve(): data = sys.stdin.read().strip().split() it = iter(data) try: N = int(next(it)) except StopIteration: return S = next(it).strip() A = [int(next(it)) for _ in range(N)] Q = int(next(it)) Ks = [int(next(it)) for _ in range(Q)] out_lines = [] for K in Ks: l = 0 cur_sum = 0 cur_enemies = 0 best = 0 for r in range(N): cur_sum += A[r] if S[r] == 'E': cur_enemies += 1 # shrink until sum <= K while l <= r and cur_sum > K: cur_sum -= A[l] if S[l] == 'E': cur_enemies -= 1 l += 1 # now window [l..r] has sum <= K if cur_sum <= K: if cur_enemies > best: best = cur_enemies out_lines.append(str(best)) sys.stdout.write("\n".join(out_lines) + "\n") if __name__ == "__main__": solve()