#P1591. M*A*S*H

M*A*S*H

描述

下士克林格是朝鲜战争中第4077流动陆军外科医院的一名成员;他会想尽一切办法离开这里。美国陆军提供了一个抽签机会,将选出一定数量(XX)的幸运儿返回美国本土进行征兵宣传之旅。克林格需要你帮助他离开这里。

抽签的方式是让部队的所有成员立正站成一排,从1到NN报数并淘汰成员,其中NN是从一副牌的顶部抽牌所确定的数字。每当数到NN时,那个人就离开队伍,然后从队伍中的下一个人开始重新从1报数。当数到队伍末尾(无论此时数到的数字是多少),就从牌堆顶部抽取下一张牌,然后从剩下队伍中的第一个人开始再次从1报数。最后留在队伍中的XX个人可以回家。

克林格找到了一种方法,能在抽签过程开始前用一副做了手脚的牌替换掉真正的牌。然而,直到最后一刻他才会知道有多少人参加抽签。你的任务是编写一个程序,利用克林格提供的牌以及在抽签过程开始前他数出的队伍中的人数,告诉他应该站在队伍中的哪个(些)位置,以确保自己能回家。可以确定的是,在使用第20张牌之前,克林格的牌就能完成筛选工作。

一个简单的例子,假设有10个人,有2个幸运名额,牌上的数字依次为3、5、4、3、2,这表明克林格应该站在第1个或第8个位置才能回家。

输入

对于每次抽签,你会得到一行包含22个整数的内容。第一个整数(1N501 \leq N \leq 50)表示参加抽签的人数。第二个整数(1XN1 \leq X \leq N)表示将选出的幸运“回家”名额的数量。接下来的20个整数是牌堆中前20张牌的值。牌的值被解释为1到11(包含1和11)之间的整数值。

输出

对于每一行输入,你要单独在一行上打印消息“Selection #A”,其中AA是抽签的序号,从输入文件顶部开始,第一个抽签的序号为1。下一行将包含克林格应该尝试站进去的“幸运”位置列表。“幸运”位置列表之后跟着一个空行。

输入数据1

10 2 3 5 4 3 2 9 6 10 10 6 2 6 7 3 4 7 4 5 3 2
47 6 11 2 7 3 4 8 5 10 7 8 3 7 4 2 3 9 10 2 5 3

输出数据1

Selection #1 
1 8 

Selection #2 
1 3 16 23 31 47

来源 美国中南部 1995年