#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long int ll; typedef pair P; int main() { int c[1<<20], a[21][1<<20], b[21][1<<20]; for(int i=0; i<(1<<20); i++){ int i0=i; c[i]=0; while(i0){ c[i]+=(i0&1); i0>>=1; } } for(int i=(1<<20)-1; i>=0; i--){ for(int j=0; j<=20; j++){ if(i==0 && j==0) continue; if(i+j+c[i]>=(1<<20)){ a[j][i]=(i+j+c[i])&((1<<20)-1); b[j][i]=1; }else{ a[j][i]=a[j][i+j+c[i]]; b[j][i]=b[j][i+j+c[i]]+1; } } } ll n; cin>>n; ll x1=0, x2=1e12; while(x1!=x2){ ll x0=(x1+x2+1)/2; ll x=x0; ll n0=1; ll i1=-1; for(int i=0; i<(1<<20); i++){ if(x