约瑟夫问题[2]
时间限制:1秒 内存限制:256M
【题目描述】
编号为:\(1、2、3、…、N\) 的 \(N\) 个人按顺时针方向围坐一圈,每人持有一个密码(正整数)。从指定编号为 1 的人开始,按顺时针方向自 1 开始顺序报数,报到指定数 \(M\) 时停止报数,报 \(M\) 的人出列,并将他的密码作为新的 \(M\) 值,从他在顺时针方向的下一个人开始,重新从 1 报数,依此类推,直至所有的人全部出列为止。请设计一个程序求出列的顺序。
【输入格式】
第一行两个整数 \(N,M\);
接着下来的 \(N\) 行,每行一个整数,第 \(i+1\) 行的整数表示第 \(i\) 个人持有的密码。
【输出格式】
\(N\) 行,按顺序输出出列人的编号。
【输入输出样例】
Input
5 3
2
3
1
2
3
Output
3
4
1
5
2
【数据限制】
对于 \(100\%\) 的数据满足,\(2≤N,M≤10000\)。
【来源】
Mr.he