흥미로운 단어
시간 제한3초메모리 제한2048 MB
주어진 단어들을 순서대로 이어 붙여 길이가 정확히 L인 회문이 되는 경우의 수를 10^9+7로 나눈 나머지로 구합니다.
문제
Ene는 회문을 좋아한다.
Ene에게는 흥미로운 단어 목록이 있다. Ene는 흥미로운 단어를 몇 개 골라 이어 붙여서 길이가 정확히 인 회문을 만들려고 한다. 각 단어는 여러 번 골라도 되고, 전혀 고르지 않아도 된다.
Ene는 이렇게 만드는 방법의 수를 알고 싶다. 이어 붙인 단어의 순서가 다르면 서로 다른 방법으로 본다. 서로 다른 방법이 같은 회문을 만들 수도 있다. 답이 매우 클 수 있으므로 로 나눈 나머지를 구한다.
입력
첫 줄에 양의 정수 과 이 주어진다. 은 흥미로운 단어의 개수이고, 은 만들 회문의 길이이다 (, ).
이어지는 개 줄에 흥미로운 단어 가 한 줄씩 주어진다 (, ). 단어는 소문자 영어 알파벳으로만 이루어져 있으며, 서로 다르다.
출력
회문을 만드는 방법의 수를 로 나눈 나머지로 한 줄에 출력한다.
힌트
첫 번째 예제에서 서로 다른 방법은 다음 다섯 가지이다: stack cats; evil olive; eel eve lee; lee eve eel; eve eve eve.