#1376. 材料交易

内存限制:512 MiB 时间限制:2000 ms 标准输入输出
题目类型:传统 评测方式:Special Judge
上传者: Rhodoks

题目描述

图文或许无关

GPLT选拔赛的题目又复刻了!

czq是hyf(Happy Yummy Factory)工厂的仓库管理员,最近仓库中有 nn 件材料,这些材料的代号都是一些正整数,其中第 i(1in)i(1\le i \le n) 件材料的代号为 AiA_i。巧合的是,hyf工厂目前恰好需要使用 nn 件材料用于生产,其所需第 i(1in)i(1\le i \le n) 件材料的代号为 BiB_i。对于仓库而言,材料的顺序并不重要,也就是说 AABB 都是无序可重复集合

我们说:两个无序可重复集合 X=YX=Y,当且仅当(视为有序序列时)存在 XX 的一个排列等于 YY

czq发现仓库里的 nn 件材料可能并不符合生产需求,但是他认识一个慈善家lnc。lnc目前有 mm 种交易(mm 可能为 00)可以与czq进行,每种交易可以在任意时候进行任意次。对于第 i(1im)i(1\le i \le m) 种交易,czq可以在仓库中选择任意 cic_i 件材料给lnc,然后lnc提供 cic_i 件特定的材料 {D1,...,Dci}\{D_1,...,D_{c_i}\}

更正式地,对于第 ii 种操作,czq在 AA 中选择一个大小为 cic_i 的子集合 XX 并移除,然后在 AA 中加入 {D1,...,Dci}\{D_1,...,D_{c_i}\}

由于可以榨干lnc,czq想知道有没有一种交易方案,在经过了最多 nn 次交易后,可以满足hyf工厂的需求。更正式地,对 AA 进行最多 nn 次上述操作使 A=BA=B

题目可能有多种答案,你只需要输出符合条件的一种答案即可。

输入格式

第一行一个正整数 nn,代表仓库中的材料数量;

第二行 nn 个正整数{A1,...,An}\{A_1,...,A_n\},用空格隔开,代表仓库初始的材料;

第三行 nn 个正整数{B1,...,Bn}\{B_1,...,B_n\},用空格隔开,代表工厂需要的材料;

第四行一个整数 mm,代表交易类型的数量;

接下来 mm 行,第 ii 行开头一个正整数 ci(1im)c_i(1\le i \le m),然后紧接着 cic_i 个正整数{D1...Dci}\{D_1...D_{c_i}\},用空格隔开,代表可以获得的材料。

输出格式

题目可能有多种答案,你只需要输出符合条件的一种答案即可。如果无论如何都无法满足工厂的要求,直接在第一行输出 -1

第一行一个整数 t(0tn)t(0\le t \le n),代表总共进行的交易次数。t=0t=0 代表在不需要进行任何交易的情况下,已经满足情况,此时只需要输出 0

接下来输出 tt 行:

每行开头一个正整数 ii,代表选择的交易类型,然后输入 cic_i 个正整数 {X1...Xci}\{X_1...X_{c_i}\},用空格隔开,表示 AA 中被交换的集合。

样例

样例输入1

9
1 2 1 1 1 3 3 2 2
1 2 3 1 2 3 1 2 3
1
3 3 3 2

样例输出1

1
1 1 2 3

样例输入2

4
1 1 1 1
2 2 2 2
2
2 1 2
3 1 1 1

样例输出2

-1

数据范围与提示

样例说明

对于样例1,进行一次“操作 11 ”将子集 {1,2,3}\{1,2,3\} 替换为 {3,3,2}\{3,3,2\} 后,AA1,2,31,2,3 的个数都恰好为 33 个,此时 A=BA=B

对于样例2,很显然,无论进行“操作1”还是“操作2”,AA 中始终都存在材料 11,因此不存在一种交易方法可以满足要求。

显然,你随机输出 0-1 也能拿到一些分数。

数据范围

对于100%100\%的数据,满足 1n2000,0m1001\le n \le 2000, 0\le m \le 100

对于100%100\%的数据,满足 1Ai,Bi,Din,1cin1\le A_i,B_i,D_i \le n,1\le c_i \le n