/*
将N (N<10000) 个人排成排,从第1个人开始报数;如果报数是M的倍数就出列,
报到队尾后则回到队头继续报,直到所有人都出列;
输入描述:输入2个正整数,空格分隔,第一个代表人数N,第二个代表M:(例子:6 3)
输出描述:输出一个int数组,每个数据表示原来在队列中的位置用空格隔开,表示出列顺序
3 6 4 2 5 1
*/
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
struct A
{
int val;
int count;
};
int main()
{
int N, M;
cin >> N >> M;
vector<A> ivec;
for (int i = 1; i <= N; i++)
{
A a;
a.val = i;
a.count = 0;
ivec.push_back(a);
}
int count = 0;
while (ivec.size() > 1)
{
for (int i = 0; i < ivec.size(); i++)
{
count++;
ivec[i].count = count;
if ((ivec[i].count) % M == 0)
{
cout << ivec[i].val << " ";
ivec.erase(ivec.begin() + i);
i--;
}
}
}
cout << ivec[0].val << endl;
return 0;
}