#include using namespace std; #include namespace mp=boost::multiprecision; mp::cpp_int binary_search(mp::cpp_int m,mp::cpp_int M,function a){//m以上M未満で条件を満たす最小の整数を返す。いずれも満たさない場合Mを返す。 --m; while(M-m>1){ mp::cpp_int mid=(M+m)/2; if(a(mid)){ M=mid; }else{ m=mid; } } return M; } int main(){ mp::cpp_int A; cin>>A; mp::cpp_int ans=A; for(int M=2;(1<<(M-1))=A; }); ans=min(ans,N*M); } cout<