#include #include #include using namespace std; using Modint = atcoder::modint1000000007; Modint solve(string s){ auto sa = atcoder::suffix_array(s); Modint ans = s.size() * (s.size() + 1) / 2; for(auto i : atcoder::lcp_array(s, sa)) ans -= i; return ans; } int main(){ cin.tie(nullptr); ios::sync_with_stdio(false); int N; cin >> N; vector A(N); for(int& a : A) cin >> a; if(accumulate(A.begin(), A.end(), 0LL) >= 2e7) abort(); string S; for(int i = 0; i < N; i++){ char c; cin >> c; S += string(A[i], c); } cout << solve(S).val() << endl; }