def max(a,b); a > b ? a : b; end N = gets.to_i S = gets.chomp A = gets.split.map(&:to_i) Q = gets.to_i K = gets.split.map(&:to_i) E = Array.new(N + 1, 0).tap do |it| N.times do |i| it[i + 1] = it[i] + (S[i] == 'E' ? 1 : 0) end end H = Array.new(N + 1, 0).tap do |it| N.times do |i| it[i + 1] = it[i] + A[i] end end ANS = K.map do |k| e = 0 (1 .. N).inject(0) do |l,r| (l .. r).find{|l_| H[r] - H[l_] <= k }.tap do |l_| e = max(e, E[r] - E[l_]) end end e end puts ANS