import std; void main(){ auto n=readln.chomp.to!(long); long j=cast(long)log2(n); long m=n; for(;j>0;j--){ long i=(n^^(1.0/j)).lrint; long k=n-(i^^j); long kp=n-((i+1)^^j); long km=n-((i-1)^^j); /* stderr.writefln("%d %d %d",i,j,k); stderr.writefln("%d %d %d",i,j,kp); stderr.writefln("%d %d %d",i,j,km); */ if(k>=0) m=min(i+j+k,m); if(kp>=0) m=min(i+1+j+kp,m); if(i>0&&km>=0) m=min(i-1+j+km,m); } writeln(m); }