ZCC’s English is so poor that his teacher GPS forced him to memorize words. In order to examine ZCC, GPS created a software. This software works as follow. A user inputs a string S which only consists of uppercase into this software, then the software calculates the score which string S has by using its strange methods.Initially the software stores n different words and the initial score is 1. The length of S is L. The chars of string S is labeled from 1 to L(left to right), and S[i] represent the i-th char of S.
// Prime[k] means the k-th prime number, such as Prime=2, Prime=3 ,Prime=19.
Input >> S
Score = 1
For i = 1 to L do
For k=1 to n do
If S[j..i] equals to Word[k]
Score = Score * Prime[k] * ( i * 2 - j + 1 )
Output << Score
The pseudocode above shows when input S what score we can get.
If n=2,L=3,Word=”AB”,Word=”BB” then
Score[ABB] = 1 * ( 2 * 2 - 1 + 1 ) * Prime * ( 3 * 2 - 2 + 1 ) * Prime,
Score[CBA] = 1,
Score[CAB] = 1 * ( 3 * 2 - 2 + 1 ) * Prime;
ZCC has found a BUG which can help him to input strings into the software as much as he can. And the score he gets in the end is the sum of the score he gets in each input.ZCC wants to know the score he will get in the end, if he input all the different strings into the software. That is to say if the length of string is L, he can input 26^L strings in all. The answer can be very large, so what ZCC actually want is the ans Mod 5047621.
The input contains several test cases.Two integers N(1≤N≤40),L(1≤L≤10^17) will exist in the first line of each input, indicating the number of words and the length of each S you can input to the software. Next n line contains n words, the i-th line means Word[i].Let Len[i] be the length of Word[i], and Len+Len…+Len[n]<=40.
For each test case, output the score Mod 5047621.
Case #1: 18894
Case #2: 56
Case #3: 899
Case #4: 20511
For the second test case, all the 4 words can be got. So score is (1*2-1+1)*(2+3+5+7)+22.