N = int(input()) A = list(map(int,input().split())) S = input() s = [] B = [] i = 0 s.append(S[0]) B.append(A[0]) for i in range(1,N): if S[i] == S[i-1]: B[-1] += A[i] else: s.append(S[i]) B.append(A[i]) S = "".join(s) A = B N = len(S) ans = 0 P = 10 ** 9 + 7 for i in range(N): if S[i] != S[0]:continue if A[i] < A[0]: ans += A[i] * (A[i]+1) // 2 ans %= P else: d = A[i] - A[0] ans += A[0] * d ans %= P ans += A[0] * (A[0] + 1) // 2 ans %= P j = 1 while i + j < N and S[j] == S[i+j]: ans += min(A[j],A[i+j]) ans %= P if A[j] != A[i+j]: break else: j += 1 print(ans)