4671: 绳袋

内存限制:1024 MB 时间限制:2 S 标准输入输出
题目类型:传统 评测方式:文本比较 上传者:
提交:11 通过:2

题目描述

你一开始有一个空字符串 S。

另外,有 N 个袋子,分别标记为 1,2,…,N,每个袋子里都装有一些字符串。

第 i 个袋子里包含 Ai 个字符串 Si,1,Si,2,…,Si,Ai。
你将重复以下步骤,对于 i=1,2,…,N:


选择并执行以下两种操作中的一种:

1. 支付 1 元,从袋子 i 中精确选择一个字符串,并将其连接到 S 的末尾。
2. 什么都不做。


给定一个字符串 T,找到使最终 S 等于 T 所需的最小金额。

如果没有办法使最终的 S 等于 T,则打印 -1。

输入格式

输入以以下格式从标准输入给出:

T
N
A1 S1,1 S1,2……S1,A1
A2 S2,1 S2,2……S2,A2

AN  SN,1 SN,2……SN,AN

其中:
- T 是目标字符串。
- N 是袋子的数量。
- 对于每个 i,Ai 是袋子 i 中字符串的数量,后跟 Ai 个字符串 Si,1 到 Si,Ai。

输出格式

以整数形式打印答案。

输入样例 复制

abcde
3
3 ab abc abcd
4 f c cd bcde
2 e de

输出样例 复制

2

数据范围与提示

目标字符串 T 由小写英文字母组成,长度在1到100之间(包括1和100)。
N 是介于1到100之间的整数(包括1和100)。
Ai 是介于1到10之间的整数(包括1和10)。
Si,j 是由小写英文字母组成,长度在1到10之间(包括1和10)的字符串。