#include<iostream>
using namespace std;
struct Node{
int val;
int next;
bool TF=1;
};
struct List{
Node node[101];
int p=0;
int head=0;
int tail=head;
void push_back(int d){
int np=++p;
node[np].val=d;
node[tail].next=np;
tail=np;
node[tail].next=getAddr(0,1);
}
int getAddr(int i,int n){
int ip=i;
for(int k=1;k<=n;k++){
ip=node[ip].next;
}
return ip;
}
int getVal(int i){
return node[i].val;
}
void erase(int n,int i){
int TF=1;
if(tail==node[i-1].next){
tail=i;
node[tail].next=1;
}
for(int j=1;j<=n;j++){
if(node[j].next==i && node[j].TF==1){
node[j].next=node[i].next;
}
}
}
int next(int i){
return node[i].next;
}
};
int main(){
int n,m;
cin>>n>>m;
List list;
for(int i=1;i<=n;i++){
list.push_back(i);
}
int k=0;
for(int i=1;i<n;i++){
k=list.getAddr(k,m);
cout<<k<<' ';
list.erase(n,k);
list.node[k].TF=0;
if(k==0){
k=n;
}
}
for(int i=1;i<=n;i++){
if(list.node[i].TF){
cout<<i;
}
}
return 0;
}