






import re

from filelock import FileLock


try:
      import nltk

      __A    	=   True
except (ImportError, ModuleNotFoundError):
      __A    	=   False

if NLTK_AVAILABLE:
      with FileLock('''.lock''') as lock:
            nltk.download('''punkt''', quiet=True)




def        _SCREAMING_SNAKE_CASE  (				A  :       str  )    -> str:







   """simple docstring"""
   re.sub('<n>'  ,		''  ,		A  )  # remove pegasus newline char
   assert NLTK_AVAILABLE, "nltk must be installed to separate newlines between sentences. (pip install nltk)"
   return "\n".join(nltk.sent_tokenize(A  )  )







'''simple docstring'''






from functools import lru_cache




@lru_cache
def        _SCREAMING_SNAKE_CASE  (				A  :       int  )    -> int:







   """simple docstring"""
   if num < 0:
      raise ValueError('Number should not be negative.'  )

   return 1 if num in (0, 1) else num * factorial(num - 1  )


if __name__ == "__main__":
      import doctest

      doctest.testmod()