#include<cstdio>
#include<stdlib.h>
using namespace std;
typedef struct node{
int data;
node* next;
}node,*LinkList;
LinkList Init(int n)
{//建立头节点
LinkList head,L,P;
head=new node;
head->data=1;
L=head;
for(int i=2;i<=n;i++)
{
P=new node;
P->data=i;
L->next=P;
L=P;
}
L->next=head;
return head;///最终指回头节点
}
void solve(LinkList head,int k,int p)
{
LinkList temp,L;
L=head;
while(L->data!=k)
L=L->next;///移动到开始的位置
while(L->next!=L)///当链表中不止一个元素时
{
for(int i=1;i<p;i++)///这里要从1开始
{
temp=L;
L=L->next;
}
printf("%d ",L->data);
temp->next=L->next;
free(L);///删除节点
L=temp->next;
}
printf("%d\n",L->data);///输出最后一个值
}
int main()
{
int n,p;
scanf("%d %d",&n,&p);
LinkList head=Init(n);
solve(head,1,p);
}