만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

Fantastični Fožgaj

시간 제한1.5초메모리 제한512 MB

요약
길이 m인 소문자 문자열 중 주어진 n개의 금지 패턴을 부분 문자열로 포함하지 않는 문자열의 개수를 10^9+7로 나눈 나머지로 구한다. m은 10^9까지다.
난이도

어려움10점 중 8점

유형
동적 계획법, 문자열 매칭, 행렬, 트라이
정답자
아직 제출이 없습니다

문제

Fožgaj는 Dodo와 친구가 되고 싶어서 우정에 관한 연설을 준비하기로 했다.

Fožgaj의 연설은 영어 알파벳 소문자 (m)개로 이루어진 단어이다. Domagoj는 (이미 Fožgaj에게서 우정에 관한 연설을 한 번 들은 적이 있으므로) 작은 Dodo를 놀라게 할 수 있는 (n)개의 단어 목록이 있다는 것을 알고 있다.

Malnar 씨가 Fožgaj에게 그 목록을 구해 주었고, 이제 Fožgaj는 길이가 (m)인 단어 중 목록에 있는 어떤 단어도 나타나지 않는 단어가 몇 개인지 궁금해한다. 목록에 있는 단어가 Fožgaj의 연설에 나타난다는 것은 그 단어가 연설 안에 연속된 문자들의 나열로 존재한다는 뜻이다.

Fožgaj를 도와 길이가 (m)인 단어 중 목록에 있는 어떤 단어도 나타나지 않는 단어의 개수를 (10^9 + 7)로 나눈 나머지를 출력하라.

입력

첫 번째 줄에는 문제에 나온 자연수 (n) ((1 \le n \le 100))과 (m) ((1 \le m \le 10^9))이 주어진다.

다음 (n)개 줄에는 Domagoj의 목록에 있는 단어가 하나씩 주어진다. 목록의 단어는 영어 알파벳 소문자로 이루어져 있으며 중복되지 않는다. 또한 모든 단어의 길이의 합은 최대 100이다.

출력

문제에서 구한 수를 한 줄에 출력한다.

예제3

  1. 예제 1

    입력
    2 1
    a
    b
    
    예상 출력
    24
    
  2. 예제 2

    입력
    3 2
    a
    ba
    bb
    
    예상 출력
    624
    
  3. 예제 3

    입력
    4 10
    wa
    tle
    mle
    sigsegv
    
    예상 출력
    798986899