mod = 10 ** 9 + 7 N = int(input()) A = list(map(int, input().split())) S = [ord(s) - 97 for s in input()] pos = [[] for _ in range(26)] for i in reversed(range(N)): pos[S[i]].append(i) dp = [0] * N for i in range(26): if pos[i]: dp[pos[i][-1]] = 1 for i, s in enumerate(S): pos[s].pop() for j in range(26): if pos[j] and s != j: dp[pos[j][-1]] += dp[i] * A[i] dp[pos[j][-1]] %= mod if pos[j] and s == j: dp[pos[j][-1]] += dp[i] dp[pos[j][-1]] %= mod ans = 0 for i in range(N): ans += A[i] * dp[i] ans %= mod print(ans)