#include<stdio.h>
#include<stdlib.h>
typedef struct Node{
int num;
struct Node* next;
}Node;
void Link_create(Node **p_head,Node *p_new)
{
Node *p_move=*p_head;
if(*p_head==NULL)
{
*p_head=p_new;
p_new->next=*p_head;
}
else
{
while(p_move->next!=*p_head)
{
p_move=p_move->next;
}
p_move->next=p_new;
p_new->next=*p_head;
}
}
Node* del(Node *p)
{
Node *pb=p;
printf("%d ",p->num);
while(pb->next->num!=p->num)
{
pb=pb->next;
}
Node *p_free=p;
pb->next=p->next;
free(p_free);
p_free=NULL;
return pb->next;
}
Node* Fun(Node *p_head,int n)
{
int cnt1=0;
Node *p_move=p_head;
while(1)
{
int cnt2=0;
for(cnt2=0;cnt2<2;cnt2++)
{
p_move=p_move->next;
}
p_move=del(p_move);
cnt1++;
if(n-cnt1<2)
break;
}
return p_move;
}
int main()
{
int n;
Node *p_new=NULL,*p_head=NULL;
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
p_new=(Node*)malloc(sizeof(Node));
p_new->num=i;
Link_create(&p_head,p_new);
}
p_head=Fun(p_head,n);
printf("%d\n",p_head->num);
Node* p_free=p_head;
free(p_free);
p_free=NULL;
}