#P133. 找出游戏的获胜者

找出游戏的获胜者

题目描述

共有 nn 名小伙伴一起做游戏。小伙伴们围成一圈,按 顺时针顺序11nn 编号。确切地说,从第 ii 名小伙伴顺时针移动一位会到达第 (i+1)(i+1) 名小伙伴的位置,其中 1i<n1 \le i < n ,从第 nn 名小伙伴顺时针移动一位会回到第 11 名小伙伴的位置。

游戏遵循如下规则:

  1. 从第 11 名小伙伴所在位置 开始
  2. 沿着顺时针方向数 kk 名小伙伴,计数时需要 包含 起始时的那位小伙伴。逐个绕圈进行计数,一些小伙伴可能会被数过不止一次。
  3. 你数到的最后一名小伙伴需要离开圈子,并视作输掉游戏。
  4. 如果圈子中仍然有不止一名小伙伴,从刚刚输掉的小伙伴的 顺时针下一位 小伙伴 开始,回到步骤 22 继续执行。
  5. 否则,圈子中最后一名小伙伴赢得游戏。

给你参与游戏的小伙伴总数 nn ,和一个整数 kk ,返回游戏的获胜者。

输入格式

一行,输入两个以空格分隔的整数 nnk(1kn500)k(1 \le k \le n \le 500)

输出格式

一行,输出游戏的获胜者。

样例

5 2
3
6 5
1

样例 1 解释

游戏运行步骤如下:

  1. 从小伙伴 11 开始。
  2. 顺时针数 22 名小伙伴,也就是小伙伴 1122
  3. 小伙伴 22 离开圈子。下一次从小伙伴 33 开始。
  4. 顺时针数 22 名小伙伴,也就是小伙伴 3344
  5. 小伙伴 44 离开圈子。下一次从小伙伴 55 开始。
  6. 顺时针数 22 名小伙伴,也就是小伙伴 5511
  7. 小伙伴 11 离开圈子。下一次从小伙伴 33 开始。
  8. 顺时针数 22 名小伙伴,也就是小伙伴 3355
  9. 小伙伴 55 离开圈子。只剩下小伙伴 33 。所以小伙伴 33 是游戏的获胜者。