1951: [模拟]约瑟夫问题

文件提交:无需freopen 内存限制:128 MB 时间限制:1.000 S
评测方式:普通裁判 命题人:
提交:1 解决:1

题目描述

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

输入

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

输出

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

样例输入

8 3

样例输出

7