//分析:从一开始枚举,做一下记忆化防超时。。
#include <iostream>
#include <string>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <algorithm>
#include <vector>
#include <queue>
#include <deque>
#include <map>
#define range(i,a,b) for(int i=a;i<=b;++i)
#define LL long long
#define rerange(i,a,b) for(int i=a;i>=b;--i)
#define fill(arr,tmp) memset(arr,tmp,sizeof(arr))
using namespace std;
int p[55],Jos[15],k;
void init(){
}
void solve(){
while(cin>>k,k){
if(Jos[k]){
cout<<Jos[k]<<endl;
continue;
}
int n=(k<<1),m=1;
p[0]=0;
range(i,1,k){
p[i]=(p[i-1]+m-1)%(n-i+1);
if(p[i]<k){
i=0;
++m;
}
}
Jos[k]=m;
cout<<m<<endl;
}
}
int main() {
init();
solve();
return 0;
}