#include <iostream>
#include <vector>
using namespace std;
int min(int a, int b) {
return (a < b) ? a : b;
}
int main() {
int n;
cin >> n;
int x = 1;
int dp[n+1] = {0};
for (int i = 2; i <= n; i ++) {
if (i % 2 == 0) {
dp[i] = min(dp[i-1] + 1, dp[i/2] + 1);
} else {
dp[i] = min(dp[i-1] + 1, dp[i/2+1] + 1);
}
}
cout << dp[n] << endl;
return 0;
}