#include <iostream>
#include <cstdio>
#include <cstdlib>
using namespace std;
typedef struct _NODE{
int Data;
_NODE* Left;
_NODE* Right;
}NODE;
int n, k;
NODE* arr[5001];
NODE* createNode(int );
void linkedNodes();
void displayList();
void removeList(NODE*);
int main(void){
cin >> n >> k;
for(int i = 1; i <= n; i++){
arr[i] = createNode(i);
}
linkedNodes();
displayList();
//removeList(arr[1]);
}
NODE* createNode(int data){
NODE* temp = (NODE*)malloc(sizeof(NODE));
temp -> Data = data;
temp -> Left = NULL;
temp -> Right = NULL;
return temp;
}
void linkedNodes(){
arr[1] -> Left = arr[n];
arr[n] -> Right = arr[1];
for(int i = 1; i <= n; i++){
if(i == 1){
arr[i] -> Right = arr[i+1];
arr[i] -> Right -> Left = arr[i];
}else if(i == n){
arr[i] -> Right = arr[1];
arr[i] -> Left = arr[i - 1];
arr[i] -> Right -> Left = arr[i];
arr[i] -> Left -> Right = arr[i];
}else{
arr[i] -> Right = arr[i+1];
arr[i] -> Left = arr[i-1];
arr[i] -> Right -> Left = arr[i];
arr[i] -> Left -> Right = arr[i];
}
}
}
void displayList(){
int cnt = 1;
int c = 0;
NODE* tmp = arr[1];
cout <<"<";
while(tmp != NULL){
if(cnt % k == 0){ // cnt가 k로 나머지로 나눴을 때 0이 되면 출력!
// 출력을 하고 해당 노드를 삭제를 한 후에 양 옆 노드를 연결!
NODE* curr = tmp;
tmp -> Left -> Right = tmp -> Right;
tmp -> Right -> Left = tmp -> Left;
c++;
free(curr);
if(c == n){ // 총 n개 만큼만 출력하면 되므로 c가 n일때 break;
cout << tmp -> Data << ">" << endl;
break;
}else{
cout << tmp -> Data << ", ";
}
}
tmp = tmp -> Right;
cnt++;
}
}
/*
void removeList(NODE* arr){
NODE* curr = arr -> Right;
while(curr != NULL){
NODE* next = curr -> Right;
free(curr);
curr = next;
}
free(arr);
}
*/