

from typing import TYPE_CHECKING

from ...utils import (
    OptionalDependencyNotAvailable,
    _LazyModule,
    is_flax_available,
    is_tf_available,
    is_torch_available,
)


a_     :    List[Any]     		=   {
    "configuration_wav2vec2": ["WAV_2_VEC_2_PRETRAINED_CONFIG_ARCHIVE_MAP", "Wav2Vec2Config"],
    "feature_extraction_wav2vec2": ["Wav2Vec2FeatureExtractor"],
    "processing_wav2vec2": ["Wav2Vec2Processor"],
    "tokenization_wav2vec2": ["Wav2Vec2CTCTokenizer", "Wav2Vec2Tokenizer"],
}


try:
      if not is_torch_available():
            raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
      pass
else:
      a_     :    Dict     		=   [
          "WAV_2_VEC_2_PRETRAINED_MODEL_ARCHIVE_LIST",
          "Wav2Vec2ForAudioFrameClassification",
          "Wav2Vec2ForCTC",
          "Wav2Vec2ForMaskedLM",
          "Wav2Vec2ForPreTraining",
          "Wav2Vec2ForSequenceClassification",
          "Wav2Vec2ForXVector",
          "Wav2Vec2Model",
          "Wav2Vec2PreTrainedModel",
      ]

try:
      if not is_tf_available():
            raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
      pass
else:
      a_     :    Union[str, Any]     		=   [
          "TF_WAV_2_VEC_2_PRETRAINED_MODEL_ARCHIVE_LIST",
          "TFWav2Vec2ForCTC",
          "TFWav2Vec2Model",
          "TFWav2Vec2PreTrainedModel",
          "TFWav2Vec2ForSequenceClassification",
      ]

try:
      if not is_flax_available():
            raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
      pass
else:
      a_     :    Optional[int]     		=   [
          "FlaxWav2Vec2ForCTC",
          "FlaxWav2Vec2ForPreTraining",
          "FlaxWav2Vec2Model",
          "FlaxWav2Vec2PreTrainedModel",
      ]


if TYPE_CHECKING:
      from .configuration_wavaveca import WAV_2_VEC_2_PRETRAINED_CONFIG_ARCHIVE_MAP, WavaVecaConfig
      from .feature_extraction_wavaveca import WavaVecaFeatureExtractor
      from .processing_wavaveca import WavaVecaProcessor
      from .tokenization_wavaveca import WavaVecaCTCTokenizer, WavaVecaTokenizer

      try:
            if not is_torch_available():
                  raise OptionalDependencyNotAvailable()
      except OptionalDependencyNotAvailable:
            pass
      else:
            from .modeling_wavaveca import (
                WAV_2_VEC_2_PRETRAINED_MODEL_ARCHIVE_LIST,
                WavaVecaForAudioFrameClassification,
                WavaVecaForCTC,
                WavaVecaForMaskedLM,
                WavaVecaForPreTraining,
                WavaVecaForSequenceClassification,
                WavaVecaForXVector,
                WavaVecaModel,
                WavaVecaPreTrainedModel,
            )

      try:
            if not is_tf_available():
                  raise OptionalDependencyNotAvailable()
      except OptionalDependencyNotAvailable:
            pass
      else:
            from .modeling_tf_wavaveca import (
                TF_WAV_2_VEC_2_PRETRAINED_MODEL_ARCHIVE_LIST,
                TFWavaVecaForCTC,
                TFWavaVecaForSequenceClassification,
                TFWavaVecaModel,
                TFWavaVecaPreTrainedModel,
            )

      try:
            if not is_flax_available():
                  raise OptionalDependencyNotAvailable()
      except OptionalDependencyNotAvailable:
            pass
      else:
            from .modeling_tf_wavaveca import (
                FlaxWavaVecaForCTC,
                FlaxWavaVecaForPreTraining,
                FlaxWavaVecaModel,
                FlaxWavaVecaPreTrainedModel,
            )


else:
      import sys

      a_     :    str     		=   _LazyModule(__name__, globals()["__file__"], _import_structure, module_spec=__spec__)





def  a   (lowerCAmelCase__ = 1_000_000   ):
   __a					=  1
   __a					=  1
   __a					=  {1: 1}

   for inputa in range(2		,				lowerCAmelCase__   ):
      __a					=  0
      __a					=  inputa

      while True:
         if number in counters:
            counter += counters[number]
            break
         if number % 2 == 0:
            number //= 2
            counter += 1
         else:
            __a					=  (3 * number) + 1
            counter += 1

      if inputa not in counters:
         __a					=  counter

      if counter > pre_counter:
         __a					=  inputa
         __a					=  counter
   return largest_number


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



