"""simple docstring"""






import unittest

from transformers import RoFormerTokenizer, RoFormerTokenizerFast
from transformers.testing_utils import require_rjieba, require_tokenizers

from ...test_tokenization_common import TokenizerTesterMixin
@require_rjieba
@require_tokenizers
class 	UpperCAmelCase__					(     SCREAMING_SNAKE_CASE__,   unittest.TestCase      ):


	"""simple docstring"""
	lowerCAmelCase__     :       str       =				RoFormerTokenizer
	lowerCAmelCase__     :       List[str]       =				RoFormerTokenizerFast
	lowerCAmelCase__     :       Dict       =				True
	lowerCAmelCase__     :       List[str]       =				True







	def    A     (      self			)     ->						Dict:
							super().setUp()







	def    A     (      self							,  **_SCREAMING_SNAKE_CASE			)     ->						List[Any]:
							return self.tokenizer_class.from_pretrained("junnyu/roformer_chinese_base"							,  **__lowerCAmelCase			)







	def    A     (      self							,  **_SCREAMING_SNAKE_CASE			)     ->						Optional[int]:
							return self.rust_tokenizer_class.from_pretrained("junnyu/roformer_chinese_base"							,  **__lowerCAmelCase			)







	def    A     (      self			)     ->						Tuple:
							a_				:      Tuple  		=       """永和服装饰品有限公司,今天天气非常好"""
							a_				:      Optional[Any]  		=       """永和 服装 饰品 有限公司 , 今 天 天 气 非常 好"""
							return input_text, output_text







	def    A     (      self			)     ->						str:
							a_				:      Dict  		=       self.get_tokenizer()
							a_				:      Union[str, Any]  		=       self.get_chinese_input_output_texts()
							a_				:      Any  		=       tokenizer.tokenize(__lowerCAmelCase			)

							self.assertListEqual(__lowerCAmelCase							,  output_text.split()			)

							a_				:      Union[str, Any]  		=       tokens + [tokenizer.unk_token]
							a_				:      List[Any]  		=       [2_2_9_4_3, 2_1_3_3_2, 3_4_4_3_1, 4_5_9_0_4, 1_1_7, 3_0_6, 1_2_3_1, 1_2_3_1, 2_6_5_3, 3_3_9_9_4, 1_2_6_6, 1_0_0]
							self.assertListEqual(tokenizer.convert_tokens_to_ids(__lowerCAmelCase			)							,  __lowerCAmelCase			)







	def    A     (      self			)     ->						Optional[int]:
							a_				:      Union[str, Any]  		=       self.get_rust_tokenizer()
							a_				:      Any  		=       self.get_chinese_input_output_texts()
							a_				:      int  		=       tokenizer.tokenize(__lowerCAmelCase			)
							self.assertListEqual(__lowerCAmelCase							,  output_text.split()			)
							a_				:      int  		=       tokens + [tokenizer.unk_token]
							a_				:      Optional[Any]  		=       [2_2_9_4_3, 2_1_3_3_2, 3_4_4_3_1, 4_5_9_0_4, 1_1_7, 3_0_6, 1_2_3_1, 1_2_3_1, 2_6_5_3, 3_3_9_9_4, 1_2_6_6, 1_0_0]
							self.assertListEqual(tokenizer.convert_tokens_to_ids(__lowerCAmelCase			)							,  __lowerCAmelCase			)







	def    A     (      self			)     ->						Dict:
							pass







	def    A     (      self			)     ->						Union[str, Any]:
							pass







	def    A     (      self			)     ->						Optional[int]:
							pass












'''simple docstring'''

def 				snake_case       (  a_				:			int						)							->					int:





      """simple docstring"""

      if n == 1 or not isinstance(a_     , a_						):
            return 0
      elif n == 2:
            return 1
      else:
            UpperCamelCase_					: Dict            =				[0, 1]
            for i in range(2     , n + 1						):
                  sequence.append(sequence[i - 1] + sequence[i - 2]						)

            return sequence[n]



def 				snake_case       (  a_				:			int						)							->					int:





      """simple docstring"""

      UpperCamelCase_					: Any            =				0
      UpperCamelCase_					: Union[str, Any]            =				2

      while digits < n:
            index += 1
            UpperCamelCase_					: Any            =				len(str(fibonacci(a_						)						)						)

      return index



def 				snake_case       (  a_				:			int = 1_000						)							->					int:





      """simple docstring"""

      return fibonacci_digits_index(a_						)


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






