# https://open.kattis.com/problems/hailstone2
# 1s
# 1.8 Easy

# This was generated by GPT4 by porting my Prolog program
# and after some prompts to make it shorter.

# First try 
# print((lambda f,n:(n<2)or 1+f(f,n//2*(n%2<1)or 3*n+1))(0,int(input())))

# Second try
# print((lambda f:(f:=lambda n:(n<2)or 1+f(n//2*(n%2<1)or 3*n+1))(int(input()))))

# Third:
# print((f := lambda n: 1 if n < 2 else 1 + f(n // 2 if n % 2 == 0 else 3 * n + 1)))(int(input()))
# GPT4 now complained that I reached the limit.
# 4th: # This is from GPT3.5 It works but have a lot of unecessary white space
# print((lambda f: f(f, int(input())))(lambda r, n: 1 if n < 2 else 1 + r(r, n // 2 if n % 2 == 0 else 3 * n + 1)))

# 5th: After GPT3.5 remove whitespace
# But it's too long! 96 chars
# print((lambda f:f(f,int(input())))(lambda r,n:1if n<2else 1+r(r,n//2if n%2==0else 3*n+1)))

# I asked for a version < 60 chars. (This is 74 chars)
# print(eval("f=lambda n:n>1and 1+f(n//2if n%2<1else 3*n+1)")(int(input())))
# I then asked for a shorter version. Then this was generated which 114 chars, and it's not correct
# print((lambda n,f:(n<2)or 1+f(n//2if n%2<1else 3*n+1))(int(input()),lambda n: n>1and 1+f(n//2if n%2<1else 3*n+1)))

# 89 chars
# print((lambda f:f(f,int(input())))(lambda r,n:1if n<2else 1+r(r,n//2if n%2<1else 3*n+1)))

"""
# OK, then I do it on my own
# 131 chars
def f(nc):
 n,c=nc;c+=1
 if n==1:return c;
 elif n%2==0: return f([n//2,c])
 else:return f([1+3*n,c])
t=f([int(input()),0])
print(t)
"""

# 108 chars
# def f(v):n,c=v;c+=1;return c if n==1 else f([n//2,c]) if n%2==0 else f([1+3*n,c])
# print(f([int(input()),0]))

# 108 chars
a=[]
def f(n):a.append(n);return 1 if n==1 else f(n//2)if n%2==0 else f(1+3*n)
f(int(input()));print(len(a))
