Ene loves palindromes.
Ene has a list of interesting words. She wants to select some interesting words and concatenate them to form a palindrome of length exactly $L$. Each interesting word can be chosen multiple times or not chosen at all.
Ene wants to know the number of ways to do this. Two ways are considered different when the sequences of the concatenated interesting words in them are different. Note that multiple different ways may result in the same palindrome. Since the answer may be very large, you need to find the result modulo $10^9 + 7$.
The first line of the input contains two positive integers $N$ and $L$ representing the number of the interesting words and the length of the palindrome to be formed ($1 \le N \le 333$, $1 \le L \le 1000$).
Each of the following $N$ lines contains an interesting word $s_i$ ($1\le |s_i| \le L$, $\sum_{i=1}^N |s_i| \le 600$; the interesting words only contain lowercase English letters and are pairwise distinct).
Output a line with a single integer: the number of ways to form a palindrome modulo $10^9 + 7$.
In the first example, the five different ways are the following:
stack cats; evil olive; eel eve lee; lee eve eel; eve eve eve.