만드는 중입니다

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

패턴 매칭

시간 제한2초메모리 제한256 MB

요약
문자 집합 n개와 길이 m의 패턴이 주어질 때, 무작위 추가 연산을 반복해 패턴이 연속된 집합들과 맞을 때까지의 기대 횟수를 구합니다.
난이도

어려움10점 중 8점

유형
동적 계획법, 비트 연산, 확률
정답자
아직 제출이 없습니다

문제

Rikka에게 소문자 영어 알파벳으로 이루어진 nn개의 집합 S1,S2,…,SnS_1, S_2, \ldots, S_n이 있다. 길이 mm인 패턴 p1p2…pmp_1 p_2 \ldots p_m이 집합들과 매칭된다는 것은, 다음 조건을 모두 만족하는 인덱스 ii가 존재한다는 뜻이다: p1∈Sip_1 \in S_i, p2∈Si+1p_2 \in S_{i+1}, …\ldots, pm∈Si+m−1p_m \in S_{i+m-1}.

처음에는 모든 집합이 비어 있다. Rikka는 집합에 적용할 연산을 여럿 준비했다. 각 연산은 "집합 ii에 문자 cc를 추가한다" 형태이다. 매 라운드마다 Rikka는 연산 하나를 같은 확률로 골라 적용한다. 같은 연산이 여러 번 골라질 수도 있다.

패턴이 집합들과 매칭될 때까지 걸리는 라운드 수의 기댓값을 구하라.

입력

첫 줄에 테스트 케이스 수 TT가 주어진다 (1≤T≤51 \le T \le 5).

각 테스트 케이스의 첫 줄에는 정수 nn, mm이 주어진다 (1≤m≤n≤301 \le m \le n \le 30). 이어지는 nn개 줄의 ii번째 줄에는 문자열 tit_i가 주어진다. 각 글자 ti,jt_{i,j}는 이 글자를 집합 ii에 추가하는 연산을 뜻한다. 각 문자열은 비어 있지 않으며, 같은 글자는 한 번만 나타난다. 마지막 줄에는 패턴 p1p2…pmp_1 p_2 \ldots p_m을 나타내는 소문자 문자열이 주어진다.

출력

각 테스트 케이스마다 패턴이 집합들과 절대 매칭되지 않으면 "-1"을 출력한다. 그렇지 않으면 기댓값을 pq\frac{p}{q}라 할 때, p⋅q−1 mod 998 244 353p \cdot q^{-1} \bmod 998\,244\,353을 출력한다.

힌트

첫 번째 테스트 케이스에서 기댓값은 12⋅1+122⋅2+…=2\frac{1}{2} \cdot 1 + \frac{1}{2^2} \cdot 2 + \ldots = 2이다.

예제2

  1. 예제 1

    입력
    1
    1 1
    ab
    a
    
    예상 출력
    2
    
  2. 예제 2

    입력
    1
    3 2
    acb
    cb
    ab
    cb
    
    예상 출력
    915057330