
from __future__ import annotations



def 		lowercase_    (     A__				,	A__	)							->							List[str]:
				"""simple docstring"""

				if b == 0:
								return (1, 0)
				((snake_case)  ,							(snake_case))				  =      extended_euclid(lowercase__				,	a % b	)
				snake_case				  =      a // b
				return (y, x - k * y)



def 		lowercase_    (     A__				,	A__				,	A__				,	A__	)							->							int:
				"""simple docstring"""

				((snake_case)  ,							(snake_case))				  =      extended_euclid(lowercase__				,	lowercase__	)
				snake_case				  =      na * na
				snake_case				  =      ra * x * na + ra * y * na
				return (n % m + m) % m



def 		lowercase_    (     A__				,	A__	)							->							List[str]:
				"""simple docstring"""

				((snake_case)  ,							(snake_case))				  =      extended_euclid(lowercase__				,	lowercase__	)
				if b < 0:
								snake_case				  =      (b % n + n) % n
				return b



def 		lowercase_    (     A__				,	A__				,	A__				,	A__	)							->							List[str]:
				"""simple docstring"""

				snake_case  ,							snake_case				  =      invert_modulo(lowercase__				,	lowercase__	), invert_modulo(lowercase__				,	lowercase__	)
				snake_case				  =      na * na
				snake_case				  =      ra * x * na + ra * y * na
				return (n % m + m) % m


if __name__ == "__main__":
			from doctest import testmod

			testmod(name="chinese_remainder_theorem", verbose=True)
			testmod(name="chinese_remainder_theorem2", verbose=True)
			testmod(name="invert_modulo", verbose=True)
			testmod(name="extended_euclid", verbose=True)



def 		lowercase_    (     A__				,	A__	)							->							List[Any]:
    """simple docstring"""

    snake_case				  =      [0 for i in range(r + 1	)]
    # nc0 = 1
    snake_case				  =      1
    for i in range(1				,	n + 1	):
        # to compute current row from previous row.
        snake_case				  =      min(A__				,	A__	)
        while j > 0:
            c[j] += c[j - 1]
            j -= 1
    return c[r]





print(binomial_coefficient(n=10, r=5))

