

from __future__ import annotations

import sys







def      snake_case__							(  lowerCAmelCase_     ):





     """simple docstring"""







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







def      snake_case__							(  lowerCAmelCase_     ):





     """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 		=_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__":
 _lowerCamelCase							=int(sys.argv[1])
 print(f'fibonacci({n}) is {fibonacci(n)}')




import os







def      snake_case__							(  ):





     """simple docstring"""







     SCREAMING_SNAKE_CASE 		=os.path.dirname(os.path.realpath(lowerCAmelCase_     )     )
     SCREAMING_SNAKE_CASE 		=os.path.join(lowerCAmelCase_,       'triangle.txt'     )

     with open(lowerCAmelCase_     ) as f:
          SCREAMING_SNAKE_CASE 		=f.readlines()

     SCREAMING_SNAKE_CASE 		=[[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 		=a[i - 1][j] if j != len(a[i - 1]     ) else 0
               SCREAMING_SNAKE_CASE 		=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())

