题目描述
You are given a string $t$ and a set $S$ of $N$ different strings. You need to separate $t$ such that each part is included in $S$.
For example, the following 4 separation methods satisfy the condition when $t = abab$ and $S = \\{a, ab, b\\}$.
- $a,b,a,b$
- $a,b,ab$
- $ab,a,b$
- $ab,ab$
Your task is to count the number of ways to separate $t$. Because the result can be large, you should output the remainder divided by $1,000,000,007$.
Input
The input consists of a single test case formatted as follows.
$N$
$s_1$
:
$s_N$
$t$
The first line consists of an integer $N$ ($1 \leq N \leq 100,000$) which is the number of the elements of $S$. The following $N$ lines consist of $N$ distinct strings separated by line breaks. The $i$-th string $s_i$ represents the $i$-th element of $S$. $s_i$ consists of lowercase letters and the length is between $1$ and $100,000$, inclusive. The summation of length of $s_i$ ($1 \leq i \leq N$) is at most $200,000$. The next line consists of a string $t$ which consists of lowercase letters and represents the string to be separated and the length is between $1$ and $100,000$, inclusive.
Output
Calculate the number of ways to separate $t$ and print the remainder divided by $1,000,000,007$.
Examples
Input
3
a
b
ab
abab
Output
4
Input
3
a
b
c
xyz
Output
0
Input
7
abc
ab
bc
a
b
c
aa
aaabcbccababbc
Output
160
Input
10
a
aa
aaa
aaaa
aaaaa
aaaaaa
aaaaaaa
aaaaaaaa
aaaaaaaaa
aaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
Output
461695029
输入格式
见题面
输出格式
见题面