#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);
}