/*===================
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 ;
}