#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
LL n;
LL po2[64],po3[64];
LL res;
LL get_num(LL i,LL j){
return po2[i] * po3[j];
}
int main(){
cin >> n;
po2[0] = 1,po3[0] = 1;
for(LL i = 1; i <= 63; i ++) po2[i] = po2[i - 1] * 2;
for(LL i = 1; i <= 37; i ++) po3[i] = po3[i - 1] * 3;
LL now2 = 0,now3 = 0;
for(LL i = 0; i <= 63; i ++)
for(LL j = 0; j <= 37 && i + j <= 63; j ++)
if(get_num(i,j) >= n && get_num(i,j) < 2 * n && get_num(i,j) > get_num(now2,now3) && i + j > now2 + now3)
now2 = i,now3 = j;
while(now3 || now2){
if(now3) now3 --;
else now2 --;
res ++;
if(now2 + now3 == 0) break;
LL tmp2 = 0,tmp3 = 0;
for(LL i = 0; i <= 63; i ++)
for(LL j = 0; i + j <= 63 && j <= 37; j ++)
if(get_num(i,j) >= get_num(now2,now3) && get_num(i,j) < get_num(now2,now3) * 2)
if(i + j >= tmp2 + tmp3 && get_num(i,j) > get_num(tmp2,tmp3))tmp2 = i,tmp3 = j;
now2 = tmp2,now3 = tmp3;
}
printf("%lld",res);
return 0;
}