패턴은 영어 소문자와 밑줄 _로 이루어진 문자열이다. 밑줄 하나는 아무 글자 하나와 맞는다.
패턴의 글자를 마음대로 뒤섞은 결과가 단어의 어떤 부분 문자열과 같아지면 그 단어는 패턴과 맞는다고 한다. 길이가 p인 패턴과 단어 w에 대해 다시 말하면, w에서 길이가 p인 부분 문자열을 하나 골라 패턴의 각 글자를 그 부분 문자열의 서로 다른 자리에 하나씩 놓을 수 있으면 맞는 것이다. 글자는 같은 글자가 있는 자리에 놓고, 밑줄은 남은 자리 어디에 놓아도 된다.
예를 들어 패턴 cat은 cat을 부분 문자열로 갖는 cat, scat, cater와 맞는다. 글자를 뒤섞어도 되므로 cat의 순열을 부분 문자열로 갖는 tacit, latch, fact와도 맞는다. 패턴 cat_은 c, a, t에 아무 글자 하나를 더해 만든 길이 4짜리 부분 문자열을 갖는 단어와 맞으므로 track, cant, crate와 맞는다.
단어 목록이 주어질 때 패턴과 맞는 단어가 몇 개인지 세는 프로그램을 작성하시오.
입력은 테스트 여러 개로 이루어진다.
각 테스트는 찾을 패턴이 적힌 줄로 시작한다. 패턴은 영어 소문자와 밑줄로만 이루어지고, 길이 p는 1≤p<100이다. 점 하나 .만 적힌 줄이 나오면 전체 입력이 끝난다.
패턴 다음 줄부터는 단어 목록이 이어진다. 각 줄은 그 줄에 있는 단어의 개수 k (1≤k≤10)로 시작하고, 그 뒤에 단어 k개가 공백 하나로 구분되어 나온다. 단어는 영어 소문자로만 이루어지고, 길이 m은 1<m<20이다. 단어 개수로 0이 적힌 줄이 나오면 그 테스트가 끝나고 다음 줄부터 새 테스트가 시작된다.
테스트마다 한 줄씩 Test x: y 형식으로 출력한다. x는 1부터 순서대로 붙인 테스트 번호이고, y는 그 테스트에 나온 단어 중 패턴과 맞는 단어의 개수이다. 같은 단어가 여러 번 나오면 나온 횟수만큼 센다.