'''simple docstring'''




from __future__ import annotations






def 							snake_case__				(     _A:   list[int]					)       ->      int:

		'''simple docstring'''


		lowerCAmelCase     =    len(_A					) // 2

		# choose the middle 3 elements
		lowerCAmelCase     =    lst[m - 1 : m + 2]

		# if middle element is peak
		if three[1] > three[0] and three[1] > three[2]:
				return three[1]

		# if increasing, recurse on right
		elif three[0] < three[2]:
				if len(lst[:m]					) == 2:
						m -= 1
				return peak(lst[m:]					)

		# decreasing
		else:
				if len(lst[:m]					) == 2:
						m += 1
				return peak(lst[:m]					)


if __name__ == "__main__":
						import doctest

						doctest.testmod()





'''simple docstring'''




from functools import lru_cache






@lru_cache
def 							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()




