#include <iostream>
#include <stdlib.h>
using namespace std;
long long getMin(long long a, long long b, long long c)
{
long long min = a;
if (b < min)
min = b;
if (c < min)
min = c;
return min;
}
long long makeFunction(long long N)
{
long long array[1000000] = {
0,
};
long long a, b, c;
array[1] = 0;
for (long long i = 2; i <= N; i++)
{
long long a = 100000, b = 100000, c = 100000;
if (i % 3 == 0)
{
a = array[i / 3] + 1;
}
if (i % 2 == 0)
b = array[i / 2] + 1;
c = array[i - 1] + 1;
array[i] = getMin(a, b, c);
// cout << i << ": " << array[i] << "\n";
}
return array[N];
}
int main()
{
ios_base ::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
long long N;
scanf("%lld", &N);
cout << makeFunction(N);
}