#include <bits/stdc++.h>
using namespace std;
typedef unsigned long long ll;


int main() {
  ll N;
  cin >> N;
  ll cnt=N;
  for (int i=0;i<70;i++) {
    if (N<pow(2,i)) {
      break;
    }
    else {
    ll a=N/pow(2,i);
    ll c=a*pow(2,i);
    ll b=N-c;
    if ((a+i+b)<cnt) {
      cnt=a+i+b;
    }
    }
  }
  cout << cnt << endl;
}
  
#include <bits/stdc++.h>

using namespace std;


int main()
{
    
       long long x,a,bb,cc;
        int count=0, arr[65], b[65], kaam=0;
        long long c[65];
        cin>>x;
       for(int i=0; x!=0; i++)
       {
           arr[i]=x%2;
           x=x/2;
           count++;
           if(arr[i]==1)
           b[kaam++]=i;
       }
       if(kaam!=1)
       {
       for(int i=0; i<kaam-1;i++)
       {
           cc=bb=a=0;
           for(int j=0; j<=i; j++)
           {
              cc+=pow(2, b[j]);
           }
          bb=b[i+1];
           for(int j=i+1; j<kaam; j++)
           {
               a+=pow(2, b[j]-b[i+1]);
           }
           c[i]=cc+bb+a;
       }
       
       sort(c, c+kaam-1);
       }
       else
       {
         c[0]=1+b[0];
       }
       cout<<c[0];
        
    return 0;
}