#include <stdio.h>
#include <stdlib.h>
//思路:将序号编存到数组并初始化为1,依次遍历,
//当数到3将对应的块更改变量为0,表示淘汰
//在最后只剩下一个内容为1,其序号+1即为所求
int main()
{
int n;//猴子总数
scanf("%d",&n);
int i;
int k=0;//1-3遍历计数
int x=0;//表示当前数组中内容为“1”的个数
int s[1000];
for(i=n-1;i>=0;i--){
s[i]=1;
}//初始化
while(x!=1){//不止一个内容为1,表示还有多只猴子,继续循环
x=0;//重新开始计数遍历一遍后数组中存放为“1”的个数
for(i=0;i<n;i++){
if(s[i]!=0){//不为0表示未被淘汰,报数
k++; x++;
if(k==3){
s[i]=0;k=0;//数到3,将对应内容更新为0表示淘汰,并重新开始计数
}
}
}
}
for(i=0;i<n;i++){//遍历寻找留下的一只猴子
if(s[i]==1)
printf("%d",i+1);
}
return 0;
}