YO!

시간 제한1초메모리 제한128 MB

문제

어느 날 교통 체증에 갇혀 있던 당신은 앞에 있는 픽업트럭의 뒷문에 적힌 "YO" 라는 글자를 보게 됩니다. 자세히 보니 운전자는 Toyota(도요타) 차량에서 "TO""YA" 부분만 덧칠해 가린 것이었습니다. 차들이 계속 조금씩 움직이는 동안, 당신은 이 방법이 다른 단어에도 얼마나 잘 통할지 상상하기 시작합니다.

시작 단어 하나와 사전이 주어집니다. 시작 단어의 글자 중 일부를 덧칠해 가려서, 남은 글자들을 왼쪽에서 오른쪽으로 읽었을 때 사전에 있는 단어 하나 이상이 이어지도록 만드는 방법이 몇 가지인지 세십시오.

가려진 글자는 빈칸처럼 취급됩니다. 즉, 서로 다른 단어들이 반드시 붙어 있을 필요는 없으며, 한 단어의 글자들 사이에 빈칸이 끼어 있어도 됩니다. 서로 다른 덧칠 방법은 각각 따로 셉니다. 여러 개의 단어를 만들어 내는 방법(같은 단어가 여러 위치에 나타나는 경우 포함)은 단어 하나만 만들어 내는 방법과 구분하여 따로 셉니다. 한 가지 방법 안에서 단어들은 서로 겹칠 수 없습니다. 남은 각 글자는 정확히 하나의 단어에만 속하고, 단어들은 왼쪽에서 오른쪽 순서대로 나타나야 합니다.

예를 들어 사전에 "he" 와 "vet" 이 있고 시작 단어가 "CHEVROLET" 라면, 다음과 같이 네 가지 덧칠 방법이 가능합니다(점은 덧칠해 가린 글자를 나타냅니다).

   .HE......
   .H.....E.
   ...V...ET
   .HEV...ET

반면 "CHEVROLET" 는 "hoe" 와 "vet" 를 각각 따로 만들 수는 있지만, 한 가지 방법으로 두 단어를 동시에 만들 수는 없습니다. 두 단어가 같은 글자를 공유해야 하기 때문입니다.

입력

첫째 줄에 데이터 집합의 개수를 나타내는 정수 $N$ ($1 \le N \le 100$) 이 주어집니다.

각 데이터 집합은 "$X$ $S$" 형태의 줄로 시작합니다. 정수 $X$ ($1 \le X \le 200000$) 는 이 데이터 집합의 사전에 들어 있는 단어의 개수이고, 문자열 $S$ 는 시작 단어로 길이가 1자 이상 30자 이하입니다. 이어지는 $X$ 개의 줄에는 사전 단어가 한 줄에 하나씩 주어지며, 각 단어의 길이도 1자 이상 30자 이하입니다.

시작 단어는 항상 대문자로 주어지고, 사전 단어에는 대문자와 소문자가 섞여 있을 수 있습니다. 글자를 비교할 때 대소문자는 구분하지 않습니다. 시작 단어와 사전 단어에는 빈칸이 들어 있지 않으며, 한 데이터 집합의 사전에는 같은 단어가 중복해서 나오지 않고, 사전 단어의 순서는 정해져 있지 않습니다.

출력

각 데이터 집합마다, 남은 글자들이 사전에 있는 단어 하나 이상을 이루도록 하는 서로 다른 덧칠 방법의 개수를 정수 하나로 한 줄에 출력하십시오. 방법으로 인정되려면 적어도 한 글자는 반드시 덧칠해 가려야 합니다. 따라서 어떤 사전 단어가 시작 단어 전체와 완전히 같더라도, 그 단어 하나만으로는 세지 않습니다. 한 데이터 집합에서 이러한 방법의 수는 300000을 넘지 않는다고 가정해도 됩니다.