





"""simple docstring"""




def 	a_    (							_lowercase       ):
						if any(not isinstance(_lowercase	,						_lowercase       ) or x < 0 for x in sequence       ):
												raise TypeError('''Sequence must be list of non-negative integers'''       )
						for _ in range(len(_lowercase       )       ):
												for i, (rod_upper, rod_lower) in enumerate(zip(_lowercase	,						sequence[1:]       )       ):
																		if rod_upper > rod_lower:
																								sequence[i] -= rod_upper - rod_lower
																								sequence[i + 1] += rod_upper - rod_lower
						return sequence


if __name__ == "__main__":
						assert bead_sort([5, 4, 3, 2, 1]) == [1, 2, 3, 4, 5]
						assert bead_sort([7, 9, 4, 3, 5]) == [3, 4, 5, 7, 9]










"""simple docstring"""




from functools import lru_cache





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



