#HK4224. 「ROI 2021 Day1」打孔卡片
「ROI 2021 Day1」打孔卡片
题目描述
译自 ROI 2021 Day1 T1. Перфокарты
在举办编程比赛的公司仓库里,发现了 张打孔卡片。每张打孔卡片是一条由 个格子组成的条带,每个格子要么包含一个小写英文字母,要么是一个孔洞。
比赛评委决定将所有打孔卡片按某种顺序排列,使得如果将它们从上到下叠放起来,就能形成比赛的口号——一个长度为 的字符串 。
换句话说,固定打孔卡片的顺序后,考虑任意位置 ()。那么字符串 的第 个字符必须与最上面一张在位置 处包含字母的打孔卡片的第 个字符相同。如果对于某个位置 ,没有任何打孔卡片在该位置包含字母,则无法形成所需的字符串 。
请帮助评委确定打孔卡片的排列顺序。

上图展示了第二个样例中的卡片顺序。标出了从上面能看到的字母。
输入格式
第一行包含两个整数 ,分别表示打孔卡片的数量和格子的数量。
第二行包含一个长度为 的字符串 ,由小写英文字母组成。
接下来的 行中,每行描述一张打孔卡片。
每个描述以一个整数 () 开头,表示该打孔卡片中包含字母的格子数量。保证所有 的总和不超过 。
接下来是 对 和 (, 是一个小写英文字母)的描述,表示在位置 处有字母 。其他位置是孔洞。保证每张打孔卡片中字母位置按升序排列,即对于任意 ,有 。
输出格式
如果存在一种排列方式使得可以形成所需的字符串 ,输出 个整数 (),其中 是最上面的打孔卡片的编号, 是第二张打孔卡片的编号,依此类推,直到最下面的打孔卡片 。如果有多种可能的答案,可以输出任意一种。
如果不存在这样的排列方式,输出 。
1 1
a
1 1 a
1
3 4
glhf
3 1 r 3 h 4 i
3 1 r 2 l 3 o
2 1 g 4 f
3 1 2
2 2
aa
2 1 a 2 b
2 1 b 2 a
-1
数据范围与提示
详细子任务附加限制及分值如下表所示。其中子任务 是样例。
| 子任务 | 分值 | 的限制 | 的限制 | 子任务依赖 |
|---|---|---|---|---|