




'''simple docstring'''


import os
import unittest

from transformers.models.transfo_xl.tokenization_transfo_xl import VOCAB_FILES_NAMES, TransfoXLTokenizer

from ...test_tokenization_common import TokenizerTesterMixin

class     A					(	_a  ,unittest.TestCase					):
							lowercase_           =       TransfoXLTokenizer
							lowercase_           =       False
							lowercase_           =       False







							def      __lowerCAmelCase    (						self :						Tuple      )    ->							Optional[int]:


														"""simple docstring"""


														super().setUp()

														_a			  =       [
														    '''<unk>''',
														    '''[CLS]''',
														    '''[SEP]''',
														    '''want''',
														    '''unwanted''',
														    '''wa''',
														    '''un''',
														    '''running''',
														    ''',''',
														    '''low''',
														    '''l''',
														]
														_a			  =       os.path.join(self.tmpdirname							,    VOCAB_FILES_NAMES['''vocab_file''']      )
														with open(self.vocab_file							,    '''w'''							,    encoding='''utf-8'''      ) as vocab_writer:
																					vocab_writer.write(''''''.join([x + '''\n''' for x in vocab_tokens]      )      )







							def      __lowerCAmelCase    (						self :						Dict							,    **lowerCAmelCase_ :						Optional[int]      )    ->							Tuple:


														"""simple docstring"""


														_a			  =       True
														return TransfoXLTokenizer.from_pretrained(self.tmpdirname							,    **lowerCAmelCase_      )







							def      __lowerCAmelCase    (						self :						Any							,    lowerCAmelCase_ :						int      )    ->							Optional[Any]:


														"""simple docstring"""


														_a			  =       '''<unk> UNwanted , running'''
														_a			  =       '''<unk> unwanted, running'''
														return input_text, output_text







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


														"""simple docstring"""


														_a			  =       TransfoXLTokenizer(vocab_file=self.vocab_file							,    lower_case=lowerCAmelCase_      )

														_a			  =       tokenizer.tokenize('''<unk> UNwanted , running'''      )
														self.assertListEqual(lowerCAmelCase_							,    ['''<unk>''', '''unwanted''', ''',''', '''running''']      )

														self.assertListEqual(tokenizer.convert_tokens_to_ids(lowerCAmelCase_      )							,    [0, 4, 8, 7]      )







							def      __lowerCAmelCase    (						self :						Any      )    ->							str:


														"""simple docstring"""


														_a			  =       TransfoXLTokenizer(lower_case=lowerCAmelCase_      )

														self.assertListEqual(
														    tokenizer.tokenize(''' \tHeLLo ! how  \n Are yoU ?  '''      )							,    ['''hello''', '''!''', '''how''', '''are''', '''you''', '''?''']      )







							def      __lowerCAmelCase    (						self :						Optional[Any]      )    ->							str:


														"""simple docstring"""


														_a			  =       TransfoXLTokenizer(lower_case=lowerCAmelCase_      )

														self.assertListEqual(
														    tokenizer.tokenize(''' \tHeLLo ! how  \n Are yoU ?  '''      )							,    ['''HeLLo''', '''!''', '''how''', '''Are''', '''yoU''', '''?''']      )







							def      __lowerCAmelCase    (						self :						Optional[Any]      )    ->							Optional[Any]:


														"""simple docstring"""


														_a			  =       TransfoXLTokenizer(lower_case=lowerCAmelCase_      )
														_a			  =       '''Hello (bracket) and side-scrolled [and] Henry\'s $5,000 with 3.34 m. What\'s up!?'''
														_a			  =       [
														    '''Hello''',
														    '''(''',
														    '''bracket''',
														    ''')''',
														    '''and''',
														    '''side''',
														    '''@-@''',
														    '''scrolled''',
														    '''[''',
														    '''and''',
														    ''']''',
														    '''Henry''',
														    '''\'s''',
														    '''$''',
														    '''5''',
														    '''@,@''',
														    '''000''',
														    '''with''',
														    '''3''',
														    '''@.@''',
														    '''34''',
														    '''m''',
														    '''.''',
														    '''What''',
														    '''\'s''',
														    '''up''',
														    '''!''',
														    '''?''',
														]

														self.assertListEqual(tokenizer.tokenize(lowerCAmelCase_      )							,    lowerCAmelCase_      )

														self.assertEqual(tokenizer.convert_tokens_to_string(lowerCAmelCase_      )							,    lowerCAmelCase_      )







							def      __lowerCAmelCase    (						self :						List[str]      )    ->							List[str]:


														"""simple docstring"""


														_a			  =       self.get_tokenizer()
														_a			  =       len(lowerCAmelCase_      )

														tokenizer.add_tokens(['''new1''', '''new2''']      )
														tokenizer.move_added_token('''new1'''							,    1      )

														# Check that moved token is not copied (duplicate)
														self.assertEqual(len(lowerCAmelCase_      )							,    original_len + 2      )
														# Check that token is moved to specified id
														self.assertEqual(tokenizer.encode('''new1'''      )							,    [1]      )
														self.assertEqual(tokenizer.decode([1]      )							,    '''new1'''      )







'''simple docstring'''


def 	snake_case_					(UpperCamelCase :						int   ):





							'''simple docstring'''


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

														return sequence[n]
def 	snake_case_					(UpperCamelCase :						int   ):





							'''simple docstring'''


							_a			  =       0
							_a			  =       2

							while digits < n:
														index += 1
														_a			  =       len(str(fibonacci(UpperCamelCase   )   )   )

							return index
def 	snake_case_					(UpperCamelCase :						int = 1000   ):





							'''simple docstring'''


							return fibonacci_digits_index(UpperCamelCase   )


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

