






import os

# Precomputes a list of the 100 first triangular numbers
SCREAMING_SNAKE_CASE__   :      List[str]				=		[int(0.5 * n * (n + 1)) for n in range(1, 1_01)]

def   __lowercase       (			):







				"""simple docstring"""






				__magic_name__		:List[Any]   =   os.path.dirname(os.path.realpath(snake_case			)			)
				__magic_name__		:str   =   os.path.join(snake_case,	'''words.txt'''			)

				__magic_name__		:Any   =   ''''''
				with open(snake_case			) as f:
								__magic_name__		:List[Any]   =   f.readline()

				__magic_name__		:List[str]   =   [word.strip('''"'''			) for word in words.strip('''\r\n'''			).split(''','''			)]
				__magic_name__		:List[str]   =   [
				    word
				    for word in [sum(ord(snake_case			) - 6_4 for x in word			) for word in words]
				    if word in TRIANGULAR_NUMBERS
				]
				return len(snake_case			)


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














"""simple docstring"""







def      UpperCamelCase       ( _A  ,				_A )     ->       int:
				lowercase    :      int       = 1  # To kept the Calculated Value
				# Since C(n, k) = C(n, n-k)
				if k > (n - k):
								lowercase    :      List[Any]       = n - k
				# Calculate C(n,k)
				for i in range(_A ):
								result *= n - i
								result //= i + 1
				return result


def      UpperCamelCase       ( _A )     ->       int:
				return binomial_coefficient(2 * node_count  ,				_A ) // (node_count + 1)


def      UpperCamelCase       ( _A )     ->       int:
				if n < 0:
								raise ValueError("""factorial() not defined for negative values""" )
				lowercase    :      Union[str, Any]       = 1
				for i in range(1  ,				n + 1 ):
								result *= i
				return result


def      UpperCamelCase       ( _A )     ->       int:
				return catalan_number(_A ) * factorial(_A )


if __name__ == "__main__":
				_lowerCAmelCase            =	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.'
				)
