/*
大致题意:n个城市,先把1号断电,继而每隔m断电使标号为2的最后被限电;
转化为(n-1)个城市,最后断电的为标号为1的城市,求最小的m
*/
#include<stdio.h>
bool is_joseph(int m,int n)
{
int i,j;
int s=0;
for(i=2;i<=n;i++)
s=(s+m)%i;
if((s+1)==1)
return 1;
return 0;
}
int main()
{
int i,j,k;
int m,n,s;
while(scanf("%d",&n),n)
{
/*
加 不加else,
因为执行m++后,m又变成了2
都成死循环啦
while(1)
{
m=2;
if(is_joseph(m,n-1))
break;
else
m++;
}
printf("%d\n",m);
*/
m=2;
while(1)
{
if(is_joseph(m,n-1))
{
printf("%d\n",m);
break;
}
else
m++;
}
}
return 0;
}