/*===================
From : Zoj1088
Author : zscas08220
Algorithm :
===================*/
#include<iostream>
#include<algorithm>
#include<string>
#include<cmath>
using namespace std ;
bool visited [ 155 ];
int Check (int n, int m )
{
fill (visited , visited + 1 + n, false );
visited [ 1 ] = true ;
int cnt = n- 1 , i , pos = 1 ;
while (cnt != 1 )
{
//Get Next Building
i = 0 ;
int p;
for (;i < m ;pos ++ )
{
if (pos > n) pos = 1 ;
if (! visited [ pos ])
{
p= pos ;
i ++ ;
}
}
cnt -- ;
visited [ p] = true ;
}
for (i = 1 ;i <= n;i ++ )
{
if (! visited [ i ]) return i ;
}
}
int main ()
{
int n, i ;
while (cin >> n&& n)
{
for (i = 2 ;;i ++ )
{
if (Check (n, i )== 2 ) break ;
}
cout << i << endl ;
}
return 0 ;
}
From : Zoj1088
Author : zscas08220
Algorithm :
===================*/
#include<iostream>
#include<algorithm>
#include<string>
#include<cmath>
using namespace std ;
bool visited [ 155 ];
int Check (int n, int m )
{
fill (visited , visited + 1 + n, false );
visited [ 1 ] = true ;
int cnt = n- 1 , i , pos = 1 ;
while (cnt != 1 )
{
//Get Next Building
i = 0 ;
int p;
for (;i < m ;pos ++ )
{
if (pos > n) pos = 1 ;
if (! visited [ pos ])
{
p= pos ;
i ++ ;
}
}
cnt -- ;
visited [ p] = true ;
}
for (i = 1 ;i <= n;i ++ )
{
if (! visited [ i ]) return i ;
}
}
int main ()
{
int n, i ;
while (cin >> n&& n)
{
for (i = 2 ;;i ++ )
{
if (Check (n, i )== 2 ) break ;
}
cout << i << endl ;
}
return 0 ;
}