






import math
import unittest




def 				A		(					lowercase__  :  int  )		-> bool:
	assert isinstance(lowercase__ ,		lowercase__  ) and (
	    number >= 0
	), "'number' must been an int and positive"

	if 1 < number < 4:
		# 2 and 3 are primes
		return True
	elif number < 2 or number % 2 == 0 or number % 3 == 0:
		# Negatives, 0, 1, all even numbers, all multiples of 3 are not primes
		return False

	# All primes number are in format of 6k +/- 1
	for i in range(5 ,		int(math.sqrt(lowercase__  ) + 1  ) ,		6  ):
		if number % i == 0 or number % (i + 2) == 0:
			return False
	return True

class        lowerCAmelCase_				(      unittest.TestCase	):







				"""simple docstring"""




				def 				__a   ( self     :Tuple     ):
					self.assertTrue(is_prime(2     )     )
					self.assertTrue(is_prime(3     )     )
					self.assertTrue(is_prime(5     )     )
					self.assertTrue(is_prime(7     )     )
					self.assertTrue(is_prime(11     )     )
					self.assertTrue(is_prime(13     )     )
					self.assertTrue(is_prime(17     )     )
					self.assertTrue(is_prime(19     )     )
					self.assertTrue(is_prime(23     )     )
					self.assertTrue(is_prime(29     )     )







				def 				__a   ( self     :Any     ):
					with self.assertRaises(lowerCamelCase__     ):
						is_prime(-19     )
					self.assertFalse(
					    is_prime(0     )  ,     """Zero doesn't have any positive factors, primes must have exactly two."""  ,     )
					self.assertFalse(
					    is_prime(1     )  ,     """One only has 1 positive factor, primes must have exactly two."""  ,     )
					self.assertFalse(is_prime(2 * 2     )     )
					self.assertFalse(is_prime(2 * 3     )     )
					self.assertFalse(is_prime(3 * 3     )     )
					self.assertFalse(is_prime(3 * 5     )     )
					self.assertFalse(is_prime(3 * 5 * 7     )     )


if __name__ == "__main__":
							unittest.main()


"""simple docstring"""





def     __SCREAMING_SNAKE_CASE    ( A_					):
	for i in range(len(A_					) - 1		,	0		,	-1					):
		lowerCAmelCase__      :		Optional[Any]    							=      False

		for j in range(A_		,	0		,	-1					):
			if unsorted[j] < unsorted[j - 1]:
				lowerCAmelCase__							,lowerCAmelCase__      :		Union[str, Any]    							=      unsorted[j - 1], unsorted[j]
				lowerCAmelCase__      :		Dict    							=      True

		for j in range(A_					):
			if unsorted[j] > unsorted[j + 1]:
				lowerCAmelCase__							,lowerCAmelCase__      :		Union[str, Any]    							=      unsorted[j + 1], unsorted[j]
				lowerCAmelCase__      :		Any    							=      True

		if not swapped:
			break
	return unsorted


if __name__ == "__main__":
							import doctest

							doctest.testmod()
							__UpperCamelCase    : int				 =						input('''Enter numbers separated by a comma:\n''').strip()
							__UpperCamelCase    : Optional[Any]				 =						[int(item) for item in user_input.split(''',''')]
							print(F'''{cocktail_shaker_sort(unsorted) = }''')




