#include using namespace std; #define modulo 1000000007 #define mod(mod_x) ((((long long)mod_x+modulo))%modulo) #define Inf 1000000000 template struct trie{ T init_value; struct node{ vector next; T v; T sum; node(int k,T iv){ next.resize(k,-1); v = iv; sum = iv; } int link; }; vector _N; vector _S; int n; trie(int k,T iv){ init_value = iv; n = k; _N.push_back(node(n,init_value)); } void add(string s,T x){ int now = 0; for(int i=0;i Q; Q.push(0); while(Q.size()!=0){ int now = Q.front(); Q.pop(); _N[now].v = func(_N[now].v,_N[_N[now].link].v); _N[now].sum = func(_N[now].sum,_N[now].v); for(int i=0;i>S; int M; cin>>M; trie T(26,0); for(int i=0;i>s; T.add(s,1); } T.set_link(); cout<