// 设 K_i 为剩余 i 个人时,以刚出去的那个人为0号开始,编号为K的人(他)。
那么在剩余 i+1 个人时,以当时刚出局的人为0号开始,他的编号为T = ((K+M-1)%(i+1)) + 1。
因为 i+1 个人时编号为 ((M-1)%(i+1))+1 个人是 i 人时编号为 0 的刚出局者,第K个加上K就行了。
这样倒推道 i+1 = N 即可
// 其实就是约瑟夫环吧!
#include <stdio.h>
int N, M;int main()
{
while (scanf("%d", &N), N) {
scanf("%d", &M);
int ans = 1, i;
for (i=1; i<N; i++) {
ans = ((ans+M-1) % (i+1)) + 1;
}
printf("%d\n", ans);
}
return 0;
}