



'''simple docstring'''





from typing import List, Optional, Union

from ...processing_utils import ProcessorMixin
from ...tokenization_utils_base import BatchEncoding, PaddingStrategy, PreTokenizedInput, TextInput, TruncationStrategy
from ...utils import TensorType



class 						UpperCAmelCase_					( a):
							lowerCamelCase__         =	['image_processor', 'tokenizer']
							lowerCamelCase__         =	'BridgeTowerImageProcessor'
							lowerCamelCase__         =	('RobertaTokenizer', 'RobertaTokenizerFast')







							def __init__(     self,    __a,    __a):

														'''simple docstring'''

														super().__init__(__a,    __a)







							def __call__(     self,    __a,    __a = None,    __a = True,    __a = False,    __a = None,    __a = None,    __a = 0,    __a = None,    __a = None,    __a = None,    __a = False,    __a = False,    __a = False,    __a = False,    __a = True,    __a = None,    **__a,    ):

														'''simple docstring'''

														_lowerCAmelCase  :							int				     =					self.tokenizer(
														    text=__a,    add_special_tokens=__a,    padding=__a,    truncation=__a,    max_length=__a,    stride=__a,    pad_to_multiple_of=__a,    return_token_type_ids=__a,    return_attention_mask=__a,    return_overflowing_tokens=__a,    return_special_tokens_mask=__a,    return_offsets_mapping=__a,    return_length=__a,    verbose=__a,    return_tensors=__a,    **__a,    )
														# add pixel_values + pixel_mask
														_lowerCAmelCase  :							Optional[Any]				     =					self.image_processor(
														    __a,    return_tensors=__a,    do_normalize=__a,    do_center_crop=__a,    **__a)
														encoding.update(__a)

														return encoding







							def      snake_case__   (     self,    *__a,    **__a):

														'''simple docstring'''

														return self.tokenizer.batch_decode(*__a,    **__a)







							def      snake_case__   (     self,    *__a,    **__a):

														'''simple docstring'''

														return self.tokenizer.decode(*__a,    **__a)







							@property
							def      snake_case__   (     self):

														'''simple docstring'''

														_lowerCAmelCase  :							Any				     =					self.tokenizer.model_input_names
														_lowerCAmelCase  :							Dict				     =					self.image_processor.model_input_names
														return list(dict.fromkeys(tokenizer_input_names + image_processor_input_names))





def        A       (      _lowerCamelCase = 1_000_000						):





							'''simple docstring'''




							_lowerCAmelCase  :							Any				     =					1
							_lowerCAmelCase  :							Optional[Any]				     =					1
							_lowerCAmelCase  :							List[str]				     =					{1: 1}

							for inputa in range(2       ,				_lowerCamelCase						):
														_lowerCAmelCase  :							int				     =					0
														_lowerCAmelCase  :							Any				     =					inputa

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

														if inputa not in counters:
																					_lowerCAmelCase  :							Tuple				     =					counter

														if counter > pre_counter:
																					_lowerCAmelCase  :							Union[str, Any]				     =					inputa
																					_lowerCAmelCase  :							Union[str, Any]				     =					counter
							return largest_number


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