시간 제한메모리 제한제출정답맞힌 사람정답 비율
2 초 512 MB32131144.000%

문제

At this point we already know that students love to sleep. Patrik is a record holder in this category. He wakes up only when he needs to eat or if he wishes to play FIFA 20. Therefore, his dreams usually revolve around football. In his last dream, he found himself in the role of a football manager of his favourite team – GNK Dinamo Zagreb.

His job is to select N players that will defend the blue colors in the next season, but the board has some peculiar requests. They are:

  • All players must have surnames of distinct lengths.
  • Surname of a player must appear as a continuous subsequence of surnames of all players whose surnames are longer.

To make his job easier, Patrik divided the potential players in N buckets such that players in i-th bucket have exactly i letters in their surname. In each of these buckets there are exactly K players. Patrik wants to know in how many distinct ways (modulo 109 + 7) can he choose the players for his squad while also conforming to the given requests.

입력

The first line contains two integers N (1 ≤ N ≤ 50) and K (1 ≤ K ≤ 1 500).

Each of the next N lines contains K not necessarily distinct surnames of players. The surnames of players in i-th of those lines consist of exactly i lowercase letters from the English alphabet.

출력

In the only line you should output the answer from the task description.

서브태스크

번호배점제한
122

N = 5 and K = 10

233

N = 50 and K = 100

355

No additional constraints.

예제 입력 1

3 2
a b
ab bd
abc abd

예제 출력 1

5

Patrik can choose the following teams: (a, ab, abc), (a, ab, abd), (b, ab, abc), (b, ab, abd) and (b, bd, abd).

예제 입력 2

3 3
a b c
aa ab ac
aaa aab aca

예제 출력 2

6

예제 입력 3

3 1
a
bc
def

예제 출력 3

0

채점 및 기타 정보

  • 예제는 채점하지 않는다.