PivotOJ

OOP

시간 제한: 2000ms메모리 제한: 512MB출처: COCI 2015-2016BOJ 11878

문제

Little Matej is solving an OOP (Object-oriented programming) laboratory exercise and he’s having trouble with solving one subtask.

He is given a set that contains N words. He is also given Q queries where each query is one pattern. A pattern consists of a single character “*” and lowercase letters of the English alphabet. For example, “*”, “kul*to”, “ana*”.

A pattern is said to cover a word if such an array of letters (which can be empty) exists that, when replacing the character ‘*’, the pattern and the word become completely identical. It is necessary to output how many words each pattern covers.

입력

The first line of input contains two integers N and Q (1 ≤ N, Q ≤ 100 000).

Each of the following N lines contains a word that consists of lowercase letters of the English alphabet.

Each of the following Q lines contains a pattern for which you need to output how many words from the first set it covers.

The total number of characters will be less than 3 000 000.

출력

Output Q lines, the kth line containing the number of words that the kth pattern covers.

예제

예제 1

입력
3 3
aaa
abc
aba
a*a
aaa*
*aaa
출력
2
1
1

예제 2

입력
5 3
eedecc
ebdecb
eaba
ebcddc
eb
e*
*dca
e*c
출력
5
0
2
코드를 제출하려면 로그인하세요.