2066: 约瑟夫问题

Memory Limit:128 MB Time Limit:1.000 S
Judge Style:Text Compare Creator:
Submit:165 Solved:15

Description

约瑟夫问题来源于公元1世纪的犹太历史学家Josephus,他在日记中记载了犹太战争中的一个故事:他和战友被罗马军队包围在一个山洞中,战友们宁愿死也不愿被俘,于是决定了一个自杀方式,41个人排成一个圆圈,由第1个人开始报数,每报数到第3人该人就必须自杀,然后再由下一个重新报数,直到所有人都自杀身亡为止。Josephus是最后剩下的两个人之一,最后两人放弃了自杀。这个问题的一般形式可描述为:
n个人(分别以编号1,2,3...n表示)围成一个圆圈,从编号为1的人开始进行1~m正向报数,报到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;如此重复下去,直到所有的人全部出列,求最后一个出列人的编号。
几乎所有的程序设计入门教材都会提到约瑟夫问题,为了隐去其历史背景,便于中国人理解,国内的教材常将这个问题描述成"猴子选大王",但本质是一样的。

Input

输入文件仅有一行包含二个用空格隔开的整数N,M (2≤N≤100000,M≤10^9)。

Output

输出文件仅有一行包含一个整数表示一个整数,表示最后一个人在队列中的编号。

Sample Input Copy

8 3

Sample Output Copy

7

HINT

vector