import os




def 				_snake_case     (       ):
		"""simple docstring"""







		SCREAMING_SNAKE_CASE_  :		Optional[int]    				=   os.path.dirname(os.path.realpath(lowerCAmelCase     )     )
		SCREAMING_SNAKE_CASE_  :		Any    				=   os.path.join(lowerCAmelCase       ,			"triangle.txt"     )

		with open(lowerCAmelCase     ) as f:
				SCREAMING_SNAKE_CASE_  :		int    				=   f.readlines()

		SCREAMING_SNAKE_CASE_  :		str    				=   [[int(lowerCAmelCase     ) for y in x.rstrip("\r\n"     ).split(" "     )] for x in triangle]

		for i in range(1       ,			len(lowerCAmelCase     )     ):
				for j in range(len(a[i]     )     ):
						SCREAMING_SNAKE_CASE_  :		Union[str, Any]    				=   a[i - 1][j] if j != len(a[i - 1]     ) else 0
						SCREAMING_SNAKE_CASE_  :		str    				=   a[i - 1][j - 1] if j > 0 else 0
						a[i][j] += max(lowerCAmelCase       ,			lowerCAmelCase     )
		return max(a[-1]     )


if __name__ == "__main__":
		print(solution())

from __future__ import annotations

import sys




def 				_snake_case     (       lowerCAmelCase							:       int     ):
		"""simple docstring"""







		if n < 0:
				raise ValueError("Negative arguments are not supported"     )
		return _fib(lowerCAmelCase     )[0]




def 				_snake_case     (       lowerCAmelCase							:       int     ):
		"""simple docstring"""







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


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