Dota中的装备

Time Limit: 1000 ms Memory Limit: 65536 KiB

Problem Description

不知大家可否听过这个游戏,可否玩过,可否知道有多少年轻人碌碌无为整天只求在其中一屠为快。Dota毁一生,wow穷三代,天天写代码,必成高富帅。其实我感觉不是游戏的错,如果没有这些游戏,那些没有自制力的人照样会去找一些其他的消磨时间的方法,谁敢说找不到?
 其实dota是一款很优秀的实时对战类游戏,可以人对人,也可以打AI,除了操作、走位、配合、打钱,其实出装备也是很重要的。因为在有限时间内你的经济实力是有限的,平滑的出装备会让你成长的更快。
 很多装备需要多件其他装备来合成,比如蝴蝶需要鹰角弓(3300)、闪避护符(1800)、短棍(900), 龙芯需要掠夺(3200)、卷轴(1200)、活力之球(1100),当然有些小装备也需要合成,有些是单独的,我们希望对这些装备按照总价值排序,便于出装时参考。
 

Input

输入有多组。第一行是一个正整数T(0<T<100),代表数据的组数。
接下来每组数据的第一行两个正整数M,N,分别是本组出现的所有独立装备(非合成)和需要合成的装备,其中 1<=M<=100, 1 <= N<= 100,接下来M行,每行是一个字符串S和正整数P,S是装备的名称,P是价值。
接下来N行,每行有字符串S和正整数K,2<=K<=5, 后面有K个字符串,是组成装备S的K件其他装备的名称,注意这K件装备中也可包含合成装备。 接下来是一个正整数Q(0<Q<100),代表要排序的装备数目,接下来Q行每行一个字符串S代表装备的名称。
 数据保证需要排序的装备前面肯定出现过,保证不会出现价值相同的情况,即排序结果唯一,数据中出现的装备名称都是英文字母组成的连续字符串且长度不超过20,保证装备(包括合成装备)的最大价值在32位整数范围内,保证后面用到物品价值已在前面确定。

Output

对于每组输入,按照装备价值从小到大输出装备的名称,共Q行。每组输入最后输出一个空行。

Sample Input

1
5 2
a 1100
b 1200
c 3200
d 875
e 875
x 3 a b c
y 2 d e
4
x
y
b
c

Sample Output

b
y
c
x

Hint

Source