



'''simple docstring'''



from __future__ import annotations





def 	_A						(							lowercase__						,						lowercase__						,						lowercase__		):
						assert n > 1 and a > 0 and greatest_common_divisor(_UpperCAmelCase						,						_UpperCAmelCase		) == 1
						(lowercase__)								=    extended_gcd(_UpperCAmelCase						,						_UpperCAmelCase		)  # Implemented below
						lowercase__								=    (b * s) % n
						return x





def 	_A						(							lowercase__						,						lowercase__		):
						(lowercase__)								=    extended_euclid(_UpperCAmelCase						,						_UpperCAmelCase		)  # Implemented below
						if b < 0:
												lowercase__								=    (b % n + n) % n
						return b





def 	_A						(							lowercase__						,						lowercase__						,						lowercase__		):
						lowercase__								=    invert_modulo(_UpperCAmelCase						,						_UpperCAmelCase		)
						lowercase__								=    (b * s) % n
						return x





def 	_A						(							lowercase__						,						lowercase__		):
						assert a >= 0 and b >= 0

						if b == 0:
												lowercase__								=    a, 1, 0
						else:
												(lowercase__)								=    extended_gcd(_UpperCAmelCase						,						a % b		)
												lowercase__								=    q
												lowercase__								=    p - q * (a // b)

						assert a % d == 0 and b % d == 0
						assert d == a * x + b * y

						return (d, x, y)





def 	_A						(							lowercase__						,						lowercase__		):





						if b == 0:
												return (1, 0)
						(lowercase__)								=    extended_euclid(_UpperCAmelCase						,						a % b		)
						lowercase__								=    a // b
						return (y, x - k * y)





def 	_A						(							lowercase__						,						lowercase__		):





						if a < b:
												lowercase__								=    b, a

						while a % b != 0:
												lowercase__								=    b, a % b

						return b


if __name__ == "__main__":
				from doctest import testmod

				testmod(name="modular_division", verbose=True)
				testmod(name="modular_division2", verbose=True)
				testmod(name="invert_modulo", verbose=True)
				testmod(name="extended_gcd", verbose=True)
				testmod(name="extended_euclid", verbose=True)
				testmod(name="greatest_common_divisor", verbose=True)








'''simple docstring'''



def 	_A						(							lowercase__						,						lowercase__						,						lowercase__		):
						if right <= left:
												return
						lowercase__								=    lowercase__								=    left
						lowercase__								=    right
						lowercase__								=    sorting[left]
						while i <= b:
												if sorting[i] < pivot:
																		lowercase__	,  lowercase__								=    sorting[i], sorting[a]
																		a += 1
																		i += 1
												elif sorting[i] > pivot:
																		lowercase__	,  lowercase__								=    sorting[i], sorting[b]
																		b -= 1
												else:
																		i += 1
						quick_sort_apartition(lowercase__						,						lowercase__						,						a - 1		)
						quick_sort_apartition(lowercase__						,						b + 1						,						lowercase__		)





def 	_A						(							lowercase__						,						lowercase__						,						lowercase__		):
						if left < right:
												lowercase__								=    lomuto_partition(lowercase__						,						lowercase__						,						lowercase__		)
												quick_sort_lomuto_partition(lowercase__						,						lowercase__						,						pivot_index - 1		)
												quick_sort_lomuto_partition(lowercase__						,						pivot_index + 1						,						lowercase__		)





def 	_A						(							lowercase__						,						lowercase__						,						lowercase__		):
						lowercase__								=    sorting[right]
						lowercase__								=    left
						for i in range(lowercase__						,						lowercase__		):
												if sorting[i] < pivot:
																		lowercase__	,  lowercase__								=    sorting[i], sorting[store_index]
																		store_index += 1
						lowercase__	,  lowercase__								=    sorting[store_index], sorting[right]
						return store_index





def 	_A						(							lowercase__		):
						if len(lowercase__		) <= 1:
												return sorting
						return (
						    three_way_radix_quicksort([i for i in sorting if i < sorting[0]]		)
						    + [i for i in sorting if i == sorting[0]]
						    + three_way_radix_quicksort([i for i in sorting if i > sorting[0]]		)
						)


if __name__ == "__main__":
				import doctest

				doctest.testmod(verbose=True)

				__A       =      input("Enter numbers separated by a comma:\n").strip()
				__A       =      [int(item) for item in user_input.split(",")]
				quick_sort_apartition(unsorted, 0, len(unsorted) - 1)
				print(unsorted)






