#C. 报数出圈

    Type: Default 1000ms 128MiB

报数出圈

You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.

题目背景

约瑟夫是犹太军队的一个将军,在反抗罗马的起义中,他所率领的军队被击溃,只剩下残余的部队40余人,他们都是宁死不屈的人,所以不愿投降做叛徒。一群人表决说要死,所以用一种策略来先后kill所有人。 于是约瑟夫建议:每次由其他两人一起kill一个人,而被kill的人的先后顺序是由抽签决定的,约瑟夫有预谋地抽到了最后一签,在kill了除了他和剩余那个人之外的最后一人,他劝服了另外一个没死的人投降了罗马。

约瑟夫当年活下来就是靠快速计算这个问题。

说明

北辰OI俱乐部的 nn 个人围成一圈,编号依次为 11 , 22 , 33nn。从第一个人开始报数,数到 mm 的人出列,再由下一个人重新从 11 开始报数,数到 mm 的人再出圈。以此类推,直到所有的人都出列。请输出依次出圈人的编号。

输入格式

两个整数 nnmm(1nm1001≤n,m≤100)。

输出格式

nn 个用空格分隔的整数,表示出圈人的编号。

样例

6 4
4 2 1 3 6 5