


"""simple docstring"""
from ..utils import DummyObject, requires_backends



class      _UpperCAmelCase					(				metaclass=__snake_case							):






		'''simple docstring'''

		lowerCamelCase__           =['torch', 'transformers', 'k_diffusion']



		def __init__(self							,			*a_							,			**a_   ):





			'''simple docstring'''

			requires_backends(self							,			['''torch''', '''transformers''', '''k_diffusion''']   )



		@classmethod
		def 							SCREAMING_SNAKE_CASE    (cls							,			*a_							,			**a_   ):





			'''simple docstring'''

			requires_backends(cls							,			['''torch''', '''transformers''', '''k_diffusion''']   )



		@classmethod
		def 							SCREAMING_SNAKE_CASE    (cls							,			*a_							,			**a_   ):





			'''simple docstring'''

			requires_backends(cls							,			['''torch''', '''transformers''', '''k_diffusion''']   )










'''simple docstring'''

from __future__ import annotations

import sys







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







def     __UpperCamelCase					(				_lowercase       )			->      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
	_lowercase	,     _lowercase       :							List[str]  	=		_fib(n // 2       )
	_lowercase       :							Dict  	=		a * (b * 2 - a)
	_lowercase       :							Union[str, Any]  	=		a * a + b * b
	return (d, c + d) if n % 2 else (c, d)


if __name__ == "__main__":
		_A					:     Optional[Any]      =int(sys.argv[1])
		print(F'''fibonacci({n}) is {fibonacci(n)}''')
