




def 							__lowerCAmelCase			(UpperCAmelCase_ ,     UpperCAmelCase_		):
    a__  			=							1.0
    for i in range(1 ,     r + 1		):
        ret *= (n + 1 - i) / i
    return round(UpperCAmelCase_		)
def 							__lowerCAmelCase			(UpperCAmelCase_		):
    return choose(8 + n ,     UpperCAmelCase_		) + choose(9 + n ,     UpperCAmelCase_		) - 10
def 							__lowerCAmelCase			(UpperCAmelCase_		):
    return sum(non_bouncy_exact(UpperCAmelCase_		) for i in range(1 ,     n + 1		)		)
def 							__lowerCAmelCase			(UpperCAmelCase_ = 100		):
    return non_bouncy_upto(UpperCAmelCase_		)


if __name__ == "__main__":
 print(F"{solution() = }")












from __future__ import annotations

import sys
def 							__lowerCAmelCase			(UpperCAmelCase_		):
    if n < 0:
        raise ValueError("""Negative arguments are not supported"""		)
    return _fib(UpperCAmelCase_		)[0]
def 							__lowerCAmelCase			(UpperCAmelCase_		):
    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
    a__			,		a__  			=							_fib(n // 2		)
    a__  			=							a * (b * 2 - a)
    a__  			=							a * a + b * b
    return (d, c + d) if n % 2 else (c, d)


if __name__ == "__main__":
 SCREAMING_SNAKE_CASE_    :       Dict       =							int(sys.argv[1])
 print(F"fibonacci({n}) is {fibonacci(n)}")






