




'''simple docstring'''







import json
from typing import List, Optional, Tuple

from tokenizers import pre_tokenizers, processors

from ...tokenization_utils_base import AddedToken, BatchEncoding
from ...tokenization_utils_fast import PreTrainedTokenizerFast
from ...utils import logging
from .tokenization_longformer import LongformerTokenizer


_lowerCamelCase							:						Optional[int]								=  logging.get_logger(__name__)

_lowerCamelCase							:						Dict								=  {'vocab_file': 'vocab.json', 'merges_file': 'merges.txt', 'tokenizer_file': 'tokenizer.json'}

_lowerCamelCase							:						Dict								=  {
    'vocab_file': {
        'allenai/longformer-base-4096': 'https://huggingface.co/allenai/longformer-base-4096/resolve/main/vocab.json',
        'allenai/longformer-large-4096': (
            'https://huggingface.co/allenai/longformer-large-4096/resolve/main/vocab.json'
        ),
        'allenai/longformer-large-4096-finetuned-triviaqa': (
            'https://huggingface.co/allenai/longformer-large-4096-finetuned-triviaqa/resolve/main/vocab.json'
        ),
        'allenai/longformer-base-4096-extra.pos.embd.only': (
            'https://huggingface.co/allenai/longformer-base-4096-extra.pos.embd.only/resolve/main/vocab.json'
        ),
        'allenai/longformer-large-4096-extra.pos.embd.only': (
            'https://huggingface.co/allenai/longformer-large-4096-extra.pos.embd.only/resolve/main/vocab.json'
        ),
    },
    'merges_file': {
        'allenai/longformer-base-4096': 'https://huggingface.co/allenai/longformer-base-4096/resolve/main/merges.txt',
        'allenai/longformer-large-4096': (
            'https://huggingface.co/allenai/longformer-large-4096/resolve/main/merges.txt'
        ),
        'allenai/longformer-large-4096-finetuned-triviaqa': (
            'https://huggingface.co/allenai/longformer-large-4096-finetuned-triviaqa/resolve/main/merges.txt'
        ),
        'allenai/longformer-base-4096-extra.pos.embd.only': (
            'https://huggingface.co/allenai/longformer-base-4096-extra.pos.embd.only/resolve/main/merges.txt'
        ),
        'allenai/longformer-large-4096-extra.pos.embd.only': (
            'https://huggingface.co/allenai/longformer-large-4096-extra.pos.embd.only/resolve/main/merges.txt'
        ),
    },
    'tokenizer_file': {
        'allenai/longformer-base-4096': (
            'https://huggingface.co/allenai/longformer-base-4096/resolve/main/tokenizer.json'
        ),
        'allenai/longformer-large-4096': (
            'https://huggingface.co/allenai/longformer-large-4096/resolve/main/tokenizer.json'
        ),
        'allenai/longformer-large-4096-finetuned-triviaqa': (
            'https://huggingface.co/allenai/longformer-large-4096-finetuned-triviaqa/resolve/main/tokenizer.json'
        ),
        'allenai/longformer-base-4096-extra.pos.embd.only': (
            'https://huggingface.co/allenai/longformer-base-4096-extra.pos.embd.only/resolve/main/tokenizer.json'
        ),
        'allenai/longformer-large-4096-extra.pos.embd.only': (
            'https://huggingface.co/allenai/longformer-large-4096-extra.pos.embd.only/resolve/main/tokenizer.json'
        ),
    },
}

_lowerCamelCase							:						Union[str, Any]								=  {
    'allenai/longformer-base-4096': 4_096,
    'allenai/longformer-large-4096': 4_096,
    'allenai/longformer-large-4096-finetuned-triviaqa': 4_096,
    'allenai/longformer-base-4096-extra.pos.embd.only': 4_096,
    'allenai/longformer-large-4096-extra.pos.embd.only': 4_096,
}





class      lowerCamelCase_							(       UpperCAmelCase_							):




					'''simple docstring'''






					lowercase__    = VOCAB_FILES_NAMES
					lowercase__    = PRETRAINED_VOCAB_FILES_MAP
					lowercase__    = PRETRAINED_POSITIONAL_EMBEDDINGS_SIZES
					lowercase__    = ["""input_ids""", """attention_mask"""]
					lowercase__    = LongformerTokenizer






					def __init__(    self,  __UpperCamelCase=None,  __UpperCamelCase=None,  __UpperCamelCase=None,  __UpperCamelCase="replace",  __UpperCamelCase="<s>",  __UpperCamelCase="</s>",  __UpperCamelCase="</s>",  __UpperCamelCase="<s>",  __UpperCamelCase="<unk>",  __UpperCamelCase="<pad>",  __UpperCamelCase="<mask>",  __UpperCamelCase=False,  __UpperCamelCase=True,  **__UpperCamelCase,  ):
							super().__init__(
							    __UpperCamelCase,  __UpperCamelCase,  tokenizer_file=__UpperCamelCase,  errors=__UpperCamelCase,  bos_token=__UpperCamelCase,  eos_token=__UpperCamelCase,  sep_token=__UpperCamelCase,  cls_token=__UpperCamelCase,  unk_token=__UpperCamelCase,  pad_token=__UpperCamelCase,  mask_token=__UpperCamelCase,  add_prefix_space=__UpperCamelCase,  trim_offsets=__UpperCamelCase,  **__UpperCamelCase,  )

							_snake_case	       =       json.loads(self.backend_tokenizer.pre_tokenizer.__getstate__() )
							if pre_tok_state.get("add_prefix_space",  __UpperCamelCase ) != add_prefix_space:
									_snake_case	       =       getattr(__UpperCamelCase,  pre_tok_state.pop("type" ) )
									_snake_case	       =       add_prefix_space
									_snake_case	       =       pre_tok_class(**__UpperCamelCase )

							_snake_case	       =       add_prefix_space

							_snake_case	       =       "post_processor"
							_snake_case	       =       getattr(self.backend_tokenizer,  __UpperCamelCase,  __UpperCamelCase )
							if tokenizer_component_instance:
									_snake_case	       =       json.loads(tokenizer_component_instance.__getstate__() )

									# The lists 'sep' and 'cls' must be cased in tuples for the object `post_processor_class`
									if "sep" in state:
											_snake_case	       =       tuple(state["sep"] )
									if "cls" in state:
											_snake_case	       =       tuple(state["cls"] )

									_snake_case	       =       False

									if state.get("add_prefix_space",  __UpperCamelCase ) != add_prefix_space:
											_snake_case	       =       add_prefix_space
											_snake_case	       =       True

									if state.get("trim_offsets",  __UpperCamelCase ) != trim_offsets:
											_snake_case	       =       trim_offsets
											_snake_case	       =       True

									if changes_to_apply:
											_snake_case	       =       getattr(__UpperCamelCase,  state.pop("type" ) )
											_snake_case	       =       component_class(**__UpperCamelCase )
											setattr(self.backend_tokenizer,  __UpperCamelCase,  __UpperCamelCase )






					@property
					def 				__SCREAMING_SNAKE_CASE	(    self ):
							if self._mask_token is None:
									if self.verbose:
											logger.error("Using mask_token, but it is not set yet." )
									return None
							return str(self._mask_token )






					@mask_token.setter
					def 				__SCREAMING_SNAKE_CASE	(    self,  __UpperCamelCase ):
							_snake_case	       =       AddedToken(__UpperCamelCase,  lstrip=__UpperCamelCase,  rstrip=__UpperCamelCase ) if isinstance(__UpperCamelCase,  __UpperCamelCase ) else value
							_snake_case	       =       value






					def 				__SCREAMING_SNAKE_CASE	(    self,  *__UpperCamelCase,  **__UpperCamelCase ):
							_snake_case	       =       kwargs.get("is_split_into_words",  __UpperCamelCase )
							assert self.add_prefix_space or not is_split_into_words, (
							    f'''You need to instantiate {self.__class__.__name__} with add_prefix_space=True '''
							    "to use it with pretokenized inputs."
							)

							return super()._batch_encode_plus(*__UpperCamelCase,  **__UpperCamelCase )






					def 				__SCREAMING_SNAKE_CASE	(    self,  *__UpperCamelCase,  **__UpperCamelCase ):
							_snake_case	       =       kwargs.get("is_split_into_words",  __UpperCamelCase )

							assert self.add_prefix_space or not is_split_into_words, (
							    f'''You need to instantiate {self.__class__.__name__} with add_prefix_space=True '''
							    "to use it with pretokenized inputs."
							)

							return super()._encode_plus(*__UpperCamelCase,  **__UpperCamelCase )






					def 				__SCREAMING_SNAKE_CASE	(    self,  __UpperCamelCase,  __UpperCamelCase = None ):
							_snake_case	       =       self._tokenizer.model.save(__UpperCamelCase,  name=__UpperCamelCase )
							return tuple(__UpperCamelCase )






					def 				__SCREAMING_SNAKE_CASE	(    self,  __UpperCamelCase,  __UpperCamelCase=None ):
							_snake_case	       =       [self.bos_token_id] + token_ids_a + [self.eos_token_id]
							if token_ids_a is None:
									return output

							return output + [self.eos_token_id] + token_ids_a + [self.eos_token_id]






					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 len(cls + token_ids_a + sep ) * [0]
							return len(cls + token_ids_a + sep + sep + token_ids_a + sep ) * [0]











'''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())))





