

"""simple docstring"""
def  a__		(		lowerCAmelCase  )     ->      "list[int]":

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

      UpperCAmelCase__       :				Optional[Any]						 =  [0] * (upper_limit + 1)

      # Base case: C(0) = C(1) = 1
      UpperCAmelCase__       :				List[str]						 =  1
      if upper_limit > 0:
            UpperCAmelCase__       :				Dict						 =  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(__a  ):
                  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()




from math import ceil



def    __UpperCAmelCase (	__a      :			int = 1_001	)			->     int:

					"""simple docstring"""

					_a	:    List[Any]         =		1

					for i in range(1		,int(ceil(n / 2.0	)	)	):
										_a	:    Optional[Any]         =		2 * i + 1
										_a	:    Optional[int]         =		2 * i
										_a	:    str         =		total + 4 * odd**2 - 6 * even

					return total


if __name__ == "__main__":
			import sys

			if len(sys.argv) == 1:
						print(solution())
			else:
						try:
									a__				=		int(sys.argv[1])
									print(solution(n))
						except ValueError:
									print('''Invalid entry - please enter a number''')



