P24361 [AtCoder] Replace
省选
题目描述

Problem Statement

You are given two strings S and T consisting of lowercase English letters.
Takahashi starts with the string S. He can perform K kinds of operations any number of times in any order.
The i-th operation is the following:

Pay a cost of 1.
Then, if the current string contains the character C_i, choose one of its occurrences and replace it with the string A_i.
Otherwise, do nothing.

Find the minimum total cost needed to make the string equal T.
If it is impossible to do so, print -1.

Input

Input is given from Standard Input in the following format:
S
T
K
C_1 A_1
C_2 A_2
$\vdots$
C_K A_K

Output

Print the minimum total cost needed to make the string equal T.
If it is impossible to do so, print -1.

Constraints

  • $1\leq |S|\leq |T|\leq 50$
  • $1\leq K\leq 50$
  • C_i is $a, b,\ldots$, or z.
  • $1\leq |A_i|\leq 50$
  • S, T, and A_i are strings consisting of lowercase English letters.
  • $C_i\neq A_i, regarding C_i$ as a string of length 1.
  • All pairs (C_i,A_i) are distinct.

Sample Input 1

ab
cbca
3
a b
b ca
a efg

Sample Output 1

4

Starting with S=ab, Takahashi can make T=cbca in four operations as follows:

  • Replace the 1-st character a in ab with b (Operation of the 1-st kind). The string is now bb.
  • Replace the 2-nd character b in bb with ca (Operation of the 2-nd kind). The string is now bca.
  • Replace the 1-st character b in bca with ca (Operation of the 2-nd kind). The string is now caca.
  • Replace the 2-nd character a in caca with b (Operation of the 1-st kind). The string is now cbca.

Each operation incurs a cost of 1, for a total of 4, which is the minimum possible.

Sample Input 2

a
aaaaa
2
a aa
a aaa

Sample Output 2

2

Two operations $a \to$ aaa $\to$ aaaaa incur a cost of 2, which is the minimum possible.

Sample Input 3

a
z
1
a abc

Sample Output 3

-1

No sequence of operations makes T=z from S=a.

输入格式

见题面 Input 部分

输出格式

见题面 Output 部分

样例输入
ab cbca 3 a b b ca a efg
样例输出
4