from itertools import accumulate from bisect import bisect_left N = int(input()) S = list(str(input())) A = [0]+list(map(int,input().split())) Q = int(input()) K = list(map(int,input().split())) KS = sorted(K) scoreK = [0]*Q sumA = list(accumulate(A)) E = [] for s in S: if s == 'E': E.append(1) else: E.append(0) sumE = [0]+list(accumulate(E)) for i in range(N+1): for j in range(i,N+1): cost = sumA[j]-sumA[i] enemies = sumE[j]-sumE[i] b = bisect_left(KS,cost) if b < Q: scoreK[b] = max(scoreK[b],enemies) m = 0 for i in range(Q): m = max(scoreK[i],m) scoreK[i] = m mapK = {} for i in range(Q): mapK[KS[i]] = scoreK[i] for k in K: print(mapK[k])