




import numpy as np

SCREAMING_SNAKE_CASE:    List[Any]											=   [
    ['''a''', '''b''', '''c''', '''d''', '''e'''],
    ['''f''', '''g''', '''h''', '''i''', '''k'''],
    ['''l''', '''m''', '''n''', '''o''', '''p'''],
    ['''q''', '''r''', '''s''', '''t''', '''u'''],
    ['''v''', '''w''', '''x''', '''y''', '''z'''],
]



class       lowercase_		:



						def __init__( self  :      Dict     ):

								"""simple docstring"""

								SCREAMING_SNAKE_CASE_							=       np.array(snake_case__     )



						def   __a				( self  :      Dict				,       snake_case__  :      str     ):

								"""simple docstring"""

								SCREAMING_SNAKE_CASE_			,							SCREAMING_SNAKE_CASE_							=       np.where(letter == self.SQUARE     )
								SCREAMING_SNAKE_CASE_							=       np.concatenate([indexa + 1, indexa + 1]     )
								return indexes



						def   __a				( self  :      Union[str, Any]				,       snake_case__  :      int				,       snake_case__  :      int     ):

								"""simple docstring"""

								return self.SQUARE[indexa - 1, indexa - 1]



						def   __a				( self  :      Optional[int]				,       snake_case__  :      str     ):

								"""simple docstring"""

								SCREAMING_SNAKE_CASE_							=       message.lower()
								SCREAMING_SNAKE_CASE_							=       message.replace('j'				,       'i'     )

								SCREAMING_SNAKE_CASE_							=       ''
								for letter_index in range(len(snake_case__     )     ):
										if message[letter_index] != " ":
												SCREAMING_SNAKE_CASE_							=       self.letter_to_numbers(message[letter_index]     )
												SCREAMING_SNAKE_CASE_							=       encoded_message + str(numbers[0]     ) + str(numbers[1]     )
										elif message[letter_index] == " ":
												SCREAMING_SNAKE_CASE_							=       encoded_message + ' '

								return encoded_message






						def   __a				( self  :      List[str]				,       snake_case__  :      str     ):

								"""simple docstring"""

								SCREAMING_SNAKE_CASE_							=       message.replace(' '				,       '  '     )
								SCREAMING_SNAKE_CASE_							=       ''
								for numbers_index in range(int(len(snake_case__     ) / 2     )     ):
										if message[numbers_index * 2] != " ":
												SCREAMING_SNAKE_CASE_							=       message[numbers_index * 2]
												SCREAMING_SNAKE_CASE_							=       message[numbers_index * 2 + 1]

												SCREAMING_SNAKE_CASE_							=       self.numbers_to_letter(int(snake_case__     )				,       int(snake_case__     )     )
												SCREAMING_SNAKE_CASE_							=       decoded_message + letter
										elif message[numbers_index * 2] == " ":
												SCREAMING_SNAKE_CASE_							=       decoded_message + ' '

								return decoded_message





from __future__ import annotations

import sys


def 				_a       (				lowerCAmelCase   )->  int:
		if n < 0:
				raise ValueError('Negative arguments are not supported'   )
		return _fib(lowerCAmelCase   )[0]


def 				_a       (				lowerCAmelCase   )->  tuple[int, int]:
		if n == 0:  # (F(0), F(1))
				return (0, 1)

		# F(2n) = F(n)[2F(n+1) − F(n)]
		# F(2n+1) = F(n+1)^2+F(n)^2
		SCREAMING_SNAKE_CASE_			,							SCREAMING_SNAKE_CASE_							=       _fib(n // 2   )
		SCREAMING_SNAKE_CASE_							=       a * (b * 2 - a)
		SCREAMING_SNAKE_CASE_							=       a * a + b * b
		return (d, c + d) if n % 2 else (c, d)


if __name__ == "__main__":
						SCREAMING_SNAKE_CASE:    Optional[int]											=   int(sys.argv[1])
						print(f"""fibonacci({n}) is {fibonacci(n)}""")