n = int(input()) a = list(map(int, input().split())) s = input().strip() MOD = 10**9 + 7 from collections import defaultdict last = defaultdict(int) dp = 1 # includes empty subsequence initially for i in range(n): c = s[i] m = a[i] prev_last = last[c] # Compute new_dp = (m+1)*dp - m*prev_last mod MOD term1 = (m + 1) * dp term2 = m * prev_last new_dp = (term1 - term2) % MOD # Compute new_last = m*dp - (m-1)*prev_last mod MOD term3 = m * dp term4 = (m - 1) * prev_last new_last = (term3 - term4) % MOD # Update dp and last[c] dp = new_dp last[c] = new_last # Subtract 1 for the empty subsequence answer = (dp - 1) % MOD print(answer)