Processing math: 100%

Time Limit : sec, Memory Limit : KB
English / Japanese  

G: 検閲により置換 (Censored String)

Problem Statement

You are given the string S, and the set of strings [mathcal]P whose size is N. Now we consider applying the following operation to S:

  • Choose exactly one character in S, and replace it with '*'.

Let si be a i-th character of S, Sij be a consecutive substring in S such that S=sisi+1 sj, and pk as the k-th string of P. Your task is to calculate the minimum number of operations for satisfying the following condition.

  • For all pairs (Sij, pk), it is satisfied that Sijpk.

Input

An input is given in the following format.

S
N
p1
p2

pN
  • In line 1, you are given the string S.
  • In line 2, given an integer N. N means the size of P.
  • From line 3 to the end, given pi, the i-th string of P.

Constraints

  • 1|S|105
  • 1N105
  • 1|p1|+|p2|+ +|pN|105
  • If ij, it is guaranteed that pipj
  • S, and pi include lowercase letters only

Output

Print the minimum number of operations in one line.

Sample Input 1

brainfuck
1
fuck

Sample Output 1

1

For example, if you change "brainfuck" into "brainf*ck", you can satisfy the condition. You have to perform operation at least once, and it is the minimum value.

Sample Input 2

aaa
1
a

Sample Output 2

3

You have to operate for all characters.

Sample Input 3

hellshakeyano
3
hell
shake
key

Sample Output 3

2

In this case, for example, if you change "hellshakeyano" into "h*llsha*eyano", you can satisfy the condition. Notice if you replace one character, it might happen that several strings in the set P, which appear as the consecutive substring of S, simultaneously disappear.


 
BESsBESsBESsBESsBESsBESsBESsBESs