




def 					lowerCamelCase_    (    SCREAMING_SNAKE_CASE					,	SCREAMING_SNAKE_CASE   ):
			'''simple docstring'''
			SCREAMING_SNAKE_CASE           =					1  # To kept the Calculated Value
			# Since C(n, k) = C(n, n-k)
			if k > (n - k):
						SCREAMING_SNAKE_CASE           =					n - k
			# Calculate C(n,k)
			for i in range(SCREAMING_SNAKE_CASE   ):
						result *= n - i
						result //= i + 1
			return result
def 					lowerCamelCase_    (    SCREAMING_SNAKE_CASE   ):
			'''simple docstring'''
			return binomial_coefficient(2 * node_count					,	SCREAMING_SNAKE_CASE   ) // (node_count + 1)
def 					lowerCamelCase_    (    SCREAMING_SNAKE_CASE   ):
			'''simple docstring'''
			if n < 0:
						raise ValueError("""factorial() not defined for negative values"""   )
			SCREAMING_SNAKE_CASE           =					1
			for i in range(1					,	n + 1   ):
						result *= i
			return result
def 					lowerCamelCase_    (    SCREAMING_SNAKE_CASE   ):
			'''simple docstring'''
			return catalan_number(SCREAMING_SNAKE_CASE   ) * factorial(SCREAMING_SNAKE_CASE   )


if __name__ == "__main__":
		__A						:							Union[str, Any]							=  int(input("""Enter the number of nodes: """).strip() or 0)
		if node_count <= 0:
				raise ValueError("""We need some nodes to work with.""")
		print(
		    f'''Given {node_count} nodes, there are {binary_tree_count(node_count)} '''
		    f'''binary trees and {catalan_number(node_count)} binary search trees.'''
		)












def 					lowerCamelCase_    (    SCREAMING_SNAKE_CASE   ):
			'''simple docstring'''
			if not all(char in """01""" for char in bin_string   ):
						raise ValueError("""Non-binary value was passed to the function"""   )
			if not bin_string:
						raise ValueError("""Empty string was passed to the function"""   )
			SCREAMING_SNAKE_CASE           =					""""""
			while len(SCREAMING_SNAKE_CASE   ) % 3 != 0:
						SCREAMING_SNAKE_CASE           =					"""0""" + bin_string
			SCREAMING_SNAKE_CASE           =					[
			    bin_string[index : index + 3]
			    for index in range(len(SCREAMING_SNAKE_CASE   )   )
			    if index % 3 == 0
			]
			for bin_group in bin_string_in_3_list:
						SCREAMING_SNAKE_CASE           =					0
						for index, val in enumerate(SCREAMING_SNAKE_CASE   ):
									oct_val += int(2 ** (2 - index) * int(SCREAMING_SNAKE_CASE   )   )
						oct_string += str(SCREAMING_SNAKE_CASE   )
			return oct_string


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

		testmod()






