import bisect N = int(input()) S = input() lsA = list(map(int,input().split())) Q = int(input()) lsK = list(map(int,input().split())) ll = [0] for i in range(N): if S[i] == 'E': ll.append(ll[-1]+1) else: ll.append(ll[-1]) lssum = [0] for i in range(N): lssum.append(lssum[-1]+lsA[i]) for i in range(Q): q = lsK[i] ans = 0 for j in range(1,N+1): d = lssum[j] v = d - q ind = bisect.bisect_left(lssum, v) ecnt1 = ll[j]-ll[ind] d = lssum[j-1] v = d+q ind = bisect.bisect_right(lssum, v) ecnt2 = ll[ind-1]-ll[j-1] ans = max(ans,ecnt1,ecnt2) print(ans)