



'''simple docstring'''






def 				lowerCamelCase__	(						_A    ):
  if upper_limit < 0:
    raise ValueError('Limit for the Catalan sequence must be ≥ 0'    )

  a						: List[str]					       =					[0] * (upper_limit + 1)

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




'''simple docstring'''






from typing import TYPE_CHECKING

from ...utils import (
    OptionalDependencyNotAvailable,
    _LazyModule,
    is_sentencepiece_available,
    is_tokenizers_available,
    is_torch_available,
)


lowerCAmelCase: List[Any]							=						{}

try:
     if not is_sentencepiece_available():
          raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
     pass
else:
     lowerCAmelCase: Optional[int]							=						['NllbTokenizer']

try:
     if not is_tokenizers_available():
          raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
     pass
else:
     lowerCAmelCase: Dict							=						['NllbTokenizerFast']


if TYPE_CHECKING:
     try:
          if not is_sentencepiece_available():
               raise OptionalDependencyNotAvailable()
     except OptionalDependencyNotAvailable:
          pass
     else:
          from .tokenization_nllb import NllbTokenizer

     try:
          if not is_tokenizers_available():
               raise OptionalDependencyNotAvailable()
     except OptionalDependencyNotAvailable:
          pass
     else:
          from .tokenization_nllb_fast import NllbTokenizerFast

else:
     import sys

     lowerCAmelCase: Tuple							=						_LazyModule(__name__, globals()['__file__'], _import_structure, module_spec=__spec__)