#include<iostream>
#include<fstream>
#include<string>
#include<cmath>
#include<map>
#include<algorithm>
#include<string.h>
#include<vector>
#include<assert.h>
#include<stack>
using namespace std;
struct list
{
list* next;
int data;
};
//创建环形链表
list* createhuan(int n)
{
list* head = NULL;
int val = 1;
while (val<=n)
{
list* newnode = new list;
newnode->data = val;
if (head == NULL)
{
newnode->next = newnode;
head = newnode;
}
else
{
list* tail = head;
newnode->next = head;
while (tail->next != head)
{
tail = tail->next;
}
tail->next = newnode;
}
val++;
}
return head;
}
void show(list*head)
{
if (!head)
{
return;
}
cout << head->data << " ";
list* tmp = head->next;
while (tmp != head)
{
cout << tmp->data << " ";
tmp = tmp->next;
}
}
int main()
{
int n, m;
cin >> n>>m;
list* head = createhuan(n);
while (head != head->next)
{
for (int i = 1; i < m - 1; i++)
{
head = head->next;
}
cout << head->next->data<<"->";
list* tmp = head->next;
head->next = tmp->next;
delete tmp;
head = head->next;
}
cout << endl;
cout << head->data;
}