#688. 助学金

助学金

No testdata at current.

No submission language available for this problem.

Description

一所大学为每位学生注册了一张背面有词条的 ID 卡,用来记录学生的助学金发放情况。卡的余额最初为 0 美元,每年的上限是 40 美元,学生可以在他们的生日临近的时候于工作日支取。因此在工作日,总是可以看到多达 25 名学生出现在学生助学金部附近,他们的目的就是支取助学金。

助学金可在自动取款机(Auotomated Teller Machine,ATM)上支取,此种 ATM 经过特殊设计。结构上,它由内外两部分构成,内部为保险箱,存储量大量的一美元硬币,外部为存储箱,供取款者支取现金。为了减少 ATM 被盗时的损失,只有当存储箱中的硬币被支取完毕后,保险箱才向其输出硬币。每天早上 ATM 开机时,存储箱为空,保险箱向存储箱输出一枚硬币,当此枚硬币取走后,输出两枚硬币,然后是三枚硬币,每次增加一枚硬币,直到达到预设的上限 kk 枚硬币,之后输出到存储箱的硬币数量重置为一枚,然后是两枚,按此循环。

每名学生依次排队,插入他的 ID 卡在 ATM 上取款。他可以取走 ATM 存储箱中的所有硬币,ATM 会把该学生已经支取助学金的总额写到 ID 卡上,如果学生的支取总额没有达到每年设定的 40 美元上限值,那么他可以在取卡后重新排队,继续等待取款。如果存储箱中的现金加上学生已经支取的现金数量超过 40 美元,学生只能支取与 40 美元之间的差额,剩余在存储箱中的现金将留给下一位学生支取。

编写程序读取一系列的 n(1n25)n(1\leq n\leq 25) k(1k40)k(1\leq k \leq 40),确定学生离开排队序列的先后顺序。

Format

Input

输入的每一行包括两个整数,分别表示 n,kn,k。输入以两个空格分隔的 0 表示结束。

Output

对于每行输入均输出一行。输出由完成取款依次离开队伍的学生的序号组成。学生的序号按最开始排队时的先后顺序确定,第一个学生的序号为 1。每个序号按右对齐、输出宽度为 3 进行输出。

Samples

5 3
0 0
  1   3   5   2   4

Limitation

1s, 256MiB for each test case.