

from typing import TYPE_CHECKING

from ...utils import OptionalDependencyNotAvailable, _LazyModule, is_tokenizers_available, is_torch_available


lowercase_									=    {
    '''configuration_codegen''': ['''CODEGEN_PRETRAINED_CONFIG_ARCHIVE_MAP''', '''CodeGenConfig''', '''CodeGenOnnxConfig'''],
    '''tokenization_codegen''': ['''CodeGenTokenizer'''],
}

try:
     if not is_tokenizers_available():
          raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
     pass
else:
     lowercase_									=    ['''CodeGenTokenizerFast''']

try:
     if not is_torch_available():
          raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
     pass
else:
     lowercase_									=    [
         '''CODEGEN_PRETRAINED_MODEL_ARCHIVE_LIST''',
         '''CodeGenForCausalLM''',
         '''CodeGenModel''',
         '''CodeGenPreTrainedModel''',
     ]

if TYPE_CHECKING:
     from .configuration_codegen import CODEGEN_PRETRAINED_CONFIG_ARCHIVE_MAP, CodeGenConfig, CodeGenOnnxConfig
     from .tokenization_codegen import CodeGenTokenizer

     try:
          if not is_tokenizers_available():
               raise OptionalDependencyNotAvailable()
     except OptionalDependencyNotAvailable:
          pass
     else:
          from .tokenization_codegen_fast import CodeGenTokenizerFast

     try:
          if not is_torch_available():
               raise OptionalDependencyNotAvailable()
     except OptionalDependencyNotAvailable:
          pass
     else:
          from .modeling_codegen import (
              CODEGEN_PRETRAINED_MODEL_ARCHIVE_LIST,
              CodeGenForCausalLM,
              CodeGenModel,
              CodeGenPreTrainedModel,
          )

else:
     import sys

     lowercase_									=    _LazyModule(__name__, globals()["__file__"], _import_structure, module_spec=__spec__)






from __future__ import annotations

__snake_case		:Union[str, Any] 						=	{1: 1}





def 	__snake_case      (     _UpperCAmelCase							):
    if n in COLLATZ_SEQUENCE_LENGTHS:
        return COLLATZ_SEQUENCE_LENGTHS[n]
    __a					=							n // 2 if n % 2 == 0 else 3 * n + 1
    __a					=							collatz_sequence_length(_UpperCAmelCase							) + 1
    __a					=							sequence_length
    return sequence_length





def 	__snake_case      (     _UpperCAmelCase = 1000000							):
    __a					=							max((collatz_sequence_length(_UpperCAmelCase							), i) for i in range(1  ,					_UpperCAmelCase							)							)
    return result[1]


if __name__ == "__main__":
 print(solution(int(input().strip())))





