Problem
编程比赛每年在圣彼得堡、巴尔瑙尔和一些邻近的城市举行。这些比赛是学生世界编程锦标赛的一部分,由最受尊敬的协会之一 ACM(计算机协会)组织。在这些比赛中,来自东北欧地区NEERC(东北欧地区竞赛)的队伍被选中。每年,比赛的组织者都面临着确定将受邀参加世界编程锦标赛总决赛的队伍的问题。根据新规则,代表NEERC参加决赛的队伍不超过N支。此外,超过k支队伍不能从一所大学通过。同时,从所有这些盘中,选出这些球队在半决赛中所占名额总和最少的一组。你的任务是根据半决赛比赛的最终协议以及号码N和k,确定哪些球队将被邀请参加世界杯决赛。
输入
在输入文件的第一行有三个自然数Р (1 ≤ P ≤ 100000) —参加半决赛的球队数量,N(1 ≤N≤P)和k(1 ≤k≤P)。接下来的 P 行,每行一个,列出其团队占据相应位置的大学名称。大学名称包含小写和大写拉丁字母和空格。大学名称的长度不超过 30 个字符。下一行列出了各个大学的团队编号。因此,如果大学的名称写在第 i 行 (2 ≤ i ≤ P + 1) ,那么这支球队在半决赛中获得第 i - 1 名,并且有一个数字写在 P + 2 行的 i - 1 处。
输出
在输出文件中打印受邀参加世界编程锦标赛决赛的队伍名称,按半决赛名次排序。作为团队名称,打印大学名称后跟一个空格#the team number。
例子
<头>
# |
输入 |
输出 |
东西>
<正文>
1 |
9 5 2
梦幻大学
疯狂大学
梦幻大学
梦幻大学
很好你
你好
很好你
疯狂大学
你好
1 1 2 3 2 1 1 2 2
|
幻想大学#1
疯狂大学 #1
幻想大学 #2
非常好你 #2
好你 #1
|
表>