import bisect n = int(input()) s = input().strip() a = list(map(int, input().split())) q = int(input()) ks = list(map(int, input().split())) pref_sum = [0] pref_e = [0] for i in range(n): pref_sum.append(pref_sum[-1] + a[i]) pref_e.append(pref_e[-1] + (s[i] == 'E')) segments = [] r = 0 for l in range(n): if r < l: r = l while r < n: segments.append((pref_sum[r+1] - pref_sum[l], pref_e[r+1] - pref_e[l])) r += 1 segments.sort() best = [] mx = 0 for sm, cnt in segments: mx = max(mx, cnt) best.append((sm, mx)) sums = [x[0] for x in best] vals = [x[1] for x in best] for k in ks: idx = bisect.bisect_right(sums, k) - 1 print(vals[idx] if idx >= 0 else 0)