


def 			SCREAMING_SNAKE_CASE_		(     __A					:     Tuple							)      ->						list:

       """simple docstring"""

       for i in range(len(__lowerCAmelCase							) - 1    ,       0    ,       -1							):
              a_   :						Optional[Any]				=    False

              for j in range(__lowerCAmelCase    ,       0    ,       -1							):
                     if unsorted[j] < unsorted[j - 1]:
                            a_				,						a_   :						Dict				=    unsorted[j - 1], unsorted[j]
                            a_   :						Optional[int]				=    True

              for j in range(__lowerCAmelCase							):
                     if unsorted[j] > unsorted[j + 1]:
                            a_				,						a_   :						str				=    unsorted[j + 1], unsorted[j]
                            a_   :						List[str]				=    True

              if not swapped:
                     break
       return unsorted


if __name__ == "__main__":
   import doctest

   doctest.testmod()
   UpperCAmelCase_ :					List[Any]       =			input('Enter numbers separated by a comma:\n').strip()
   UpperCAmelCase_ :					Optional[Any]       =			[int(item) for item in user_input.split(',')]
   print(F'{cocktail_shaker_sort(unsorted) = }')



"""simple docstring"""


def      lowerCamelCase_					(   __lowerCAmelCase							)				->   "list[int]":




						'''simple docstring'''



						if upper_limit < 0:
												raise ValueError("Limit for the Catalan sequence must be ≥ 0"							)

						lowerCamelCase__   =[0] * (upper_limit + 1)

						# Base case: C(0) = C(1) = 1
						lowerCamelCase__   =1
						if upper_limit > 0:
												lowerCamelCase__   =1

						# Recurrence relation: C(i) = sum(C(j).C(i-j-1)), from j = 0 to i
						for i in range(2  ,       upper_limit + 1							):
												for j in range(__lowerCAmelCase							):
																		catalan_list[i] += catalan_list[j] * catalan_list[i - j - 1]

						return catalan_list


if __name__ == "__main__":
	print('\n********* Catalan Numbers Using Dynamic Programming ************\n')
	print('\n*** Enter -1 at any time to quit ***')
	print('\nEnter the upper limit (≥ 0) for the Catalan number sequence: ', end='')
	try:
		while True:
			a				=int(input().strip())
			if N < 0:
				print('\n********* Goodbye!! ************')
				break
			else:
				print(F'''The Catalan numbers from 0 through {N} are:''')
				print(catalan_numbers(N))
				print('Try another upper limit for the sequence: ', end='')
	except (NameError, ValueError):
		print('\n********* Invalid input, goodbye! ************\n')

	import doctest

	doctest.testmod()


