




'''simple docstring'''







import os
from shutil import copyfile
from typing import List, Optional, Tuple

from ...tokenization_utils_fast import AddedToken, PreTrainedTokenizerFast
from ...utils import logging


_lowerCamelCase							:						str								=  logging.get_logger(__name__)

_lowerCamelCase							:						List[str]								=  {'vocab_file': 'spiece.model', 'tokenizer_file': 'tokenizer.json'}

_lowerCamelCase							:						Any								=  {
    'vocab_file': {
        'TsinghuaAI/CPM-Generate': 'https://huggingface.co/TsinghuaAI/CPM-Generate/resolve/main/spiece.model',
    },
    'tokenizer_file': {
        'TsinghuaAI/CPM-Generate': 'https://huggingface.co/TsinghuaAI/CPM-Generate/resolve/main/tokenizer.json',
    },
}





class      lowerCamelCase_							(       UpperCAmelCase_							):




					'''simple docstring'''






					def __init__(    self,  __UpperCamelCase=None,  __UpperCamelCase=None,  __UpperCamelCase=False,  __UpperCamelCase=True,  __UpperCamelCase=False,  __UpperCamelCase="<s>",  __UpperCamelCase="</s>",  __UpperCamelCase="<unk>",  __UpperCamelCase="<sep>",  __UpperCamelCase="<pad>",  __UpperCamelCase="<cls>",  __UpperCamelCase="<mask>",  __UpperCamelCase=["<eop>", "<eod>"],  **__UpperCamelCase,  ):
							_snake_case	       =       AddedToken(__UpperCamelCase,  lstrip=__UpperCamelCase,  rstrip=__UpperCamelCase ) if isinstance(__UpperCamelCase,  __UpperCamelCase ) else mask_token

							super().__init__(
							    vocab_file=__UpperCamelCase,  tokenizer_file=__UpperCamelCase,  do_lower_case=__UpperCamelCase,  remove_space=__UpperCamelCase,  keep_accents=__UpperCamelCase,  bos_token=__UpperCamelCase,  eos_token=__UpperCamelCase,  unk_token=__UpperCamelCase,  sep_token=__UpperCamelCase,  pad_token=__UpperCamelCase,  cls_token=__UpperCamelCase,  mask_token=__UpperCamelCase,  additional_special_tokens=__UpperCamelCase,  **__UpperCamelCase,  )

							_snake_case	       =       3
							_snake_case	       =       do_lower_case
							_snake_case	       =       remove_space
							_snake_case	       =       keep_accents
							_snake_case	       =       vocab_file
							_snake_case	       =       False if not self.vocab_file else True

							try:
									import jieba
							except ModuleNotFoundError as error:
									raise error.__class__(
									    "You need to install jieba to use CpmTokenizer or CpmTokenizerFast. "
									    "See https://pypi.org/project/jieba/ for installation." )
							_snake_case	       =       jieba
							_snake_case	       =       str.maketrans(" \n",  "\u2582\u2583" )






					def 				__SCREAMING_SNAKE_CASE	(    self,  __UpperCamelCase,  __UpperCamelCase = None ):
							_snake_case	       =       [self.sep_token_id]
							_snake_case	       =       [self.cls_token_id]
							if token_ids_a is None:
									return token_ids_a + sep + cls
							return token_ids_a + sep + token_ids_a + sep + cls






					def 				__SCREAMING_SNAKE_CASE	(    self,  __UpperCamelCase,  __UpperCamelCase = None ):
							_snake_case	       =       [self.sep_token_id]
							_snake_case	       =       [2]

							if token_ids_a is None:
									return len(token_ids_a + sep ) * [0] + cls_segment_id
							return len(token_ids_a + sep ) * [0] + len(token_ids_a + sep ) * [1] + cls_segment_id






					def 				__SCREAMING_SNAKE_CASE	(    self,  __UpperCamelCase,  __UpperCamelCase = None ):
							if not self.can_save_slow_tokenizer:
									raise ValueError(
									    "Your fast tokenizer does not have the necessary information to save the vocabulary for a slow "
									    "tokenizer." )

							if not os.path.isdir(__UpperCamelCase ):
									logger.error(f'''Vocabulary path ({save_directory}) should be a directory''' )
									return
							_snake_case	       =       os.path.join(
							    __UpperCamelCase,  (filename_prefix + "-" if filename_prefix else "") + VOCAB_FILES_NAMES["vocab_file"] )

							if os.path.abspath(self.vocab_file ) != os.path.abspath(__UpperCamelCase ):
									copyfile(self.vocab_file,  __UpperCamelCase )

							return (out_vocab_file,)






					def 				__SCREAMING_SNAKE_CASE	(    self,  __UpperCamelCase,  *__UpperCamelCase,  **__UpperCamelCase ):
							_snake_case	       =       [
							    " ".join([x.translate(self.translator ) for x in self.jieba.cut(__UpperCamelCase,  cut_all=__UpperCamelCase )] )
							    for text in batch_text_or_text_pairs
							]
							return super()._batch_encode_plus(__UpperCamelCase,  *__UpperCamelCase,  **__UpperCamelCase )






					def 				__SCREAMING_SNAKE_CASE	(    self,  *__UpperCamelCase,  **__UpperCamelCase ):
							_snake_case	       =       super()._decode(*__UpperCamelCase,  **__UpperCamelCase )
							_snake_case	       =       text.replace(" ",  "" ).replace("\u2582",  " " ).replace("\u2583",  "\n" )
							return text











'''simple docstring'''







from __future__ import annotations

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






def 		_lowercase		(	lowercase_  ):



		'''simple docstring'''







		if n in COLLATZ_SEQUENCE_LENGTHS:
				return COLLATZ_SEQUENCE_LENGTHS[n]
		_snake_case	       =       n // 2 if n % 2 == 0 else 3 * n + 1
		_snake_case	       =       collatz_sequence_length(lowercase_  ) + 1
		_snake_case	       =       sequence_length
		return sequence_length






def 		_lowercase		(	lowercase_ = 1000000  ):



		'''simple docstring'''







		_snake_case	       =       max((collatz_sequence_length(lowercase_  ), i) for i in range(1						,							lowercase_  )  )
		return result[1]


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





