






def      a_ (      _A  )			->			Union[str, Any]:







				"""simple docstring"""
				stooge(_A      ,   0      ,   len(_A  ) - 1  )
				return arr
def      a_ (      _A      ,   _A      ,   _A  )			->			Optional[int]:







				"""simple docstring"""
				if i >= h:
								return

				# If first element is smaller than the last then swap them
				if arr[i] > arr[h]:
								snake_case__							,						snake_case__									=     arr[h], arr[i]

				# If there are more than 2 elements in the array
				if h - i + 1 > 2:
								snake_case__									=     (int)((h - i + 1) / 3  )

								# Recursively sort first 2/3 elements
								stooge(_A      ,   _A      ,   (h - t)  )

								# Recursively sort last 2/3 elements
								stooge(_A      ,   i + t      ,   (_A)  )

								# Recursively sort first 2/3 elements
								stooge(_A      ,   _A      ,   (h - t)  )


if __name__ == "__main__":
							__UpperCamelCase					:		Any	  =						input("""Enter numbers separated by a comma:\n""").strip()
							__UpperCamelCase					:		List[Any]	  =						[int(item) for item in user_input.split(""",""")]
							print(stooge_sort(unsorted))












from __future__ import annotations

from collections.abc import Iterator
from typing import Any


class   __SCREAMING_SNAKE_CASE:
							def __init__(     self:      int       ,	UpperCamelCase:      Any						)		->		List[Any]:
											snake_case__									=     data
											snake_case__									=     None


class   __SCREAMING_SNAKE_CASE:
							def __init__(     self:      Dict						)		->		Optional[Any]:
											snake_case__									=     None
											snake_case__									=     None
							def __iter__(     self:      Optional[int]						)		->		Iterator[Any]:
											snake_case__									=     self.head
											while self.head:
															yield node.data
															snake_case__									=     node.next
															if node == self.head:
																			break
							def __len__(     self:      int						)		->		int:
											return sum(1 for _ in self						)
							def __repr__(     self:      int						)		->		Optional[int]:
											return "->".join(str(UpperCamelCase						) for item in iter(self						)						)
							def lowerCAmelCase_ (     self:      Union[str, Any]       ,	UpperCamelCase:      Any						)		->		None:
											self.insert_nth(len(self						)       ,	UpperCamelCase						)
							def lowerCAmelCase_ (     self:      Tuple       ,	UpperCamelCase:      Any						)		->		None:
											self.insert_nth(0       ,	UpperCamelCase						)
							def lowerCAmelCase_ (     self:      int       ,	UpperCamelCase:      int       ,	UpperCamelCase:      Any						)		->		None:
											if index < 0 or index > len(self						):
															raise IndexError('list index out of range.'						)
											snake_case__									=     Node(UpperCamelCase						)
											if self.head is None:
															snake_case__									=     new_node  # first node points itself
															snake_case__									=     snake_case__									=     new_node
											elif index == 0:  # insert at head
															snake_case__									=     self.head
															snake_case__									=     snake_case__									=     new_node
											else:
															snake_case__									=     self.head
															for _ in range(index - 1						):
																			snake_case__									=     temp.next
															snake_case__									=     temp.next
															snake_case__									=     new_node
															if index == len(self						) - 1:  # insert at tail
																			snake_case__									=     new_node
							def lowerCAmelCase_ (     self:      Optional[int]						)		->		Union[str, Any]:
											return self.delete_nth(0						)
							def lowerCAmelCase_ (     self:      Union[str, Any]						)		->		Any:
											return self.delete_nth(len(self						) - 1						)
							def lowerCAmelCase_ (     self:      str       ,	UpperCamelCase:      int = 0						)		->		Any:
											if not 0 <= index < len(self						):
															raise IndexError('list index out of range.'						)
											snake_case__									=     self.head
											if self.head == self.tail:  # just one node
															snake_case__									=     snake_case__									=     None
											elif index == 0:  # delete head node
															snake_case__									=     self.tail.next.next
															snake_case__									=     self.head.next
											else:
															snake_case__									=     self.head
															for _ in range(index - 1						):
																			snake_case__									=     temp.next
															snake_case__									=     temp.next
															snake_case__									=     temp.next.next
															if index == len(self						) - 1:  # delete at tail
																			snake_case__									=     temp
											return delete_node.data


							def lowerCAmelCase_ (     self:      Union[str, Any]						)		->		bool:
											return len(self						) == 0


def      a_ (      )			->			None:







				"""simple docstring"""
				snake_case__									=     CircularLinkedList()
				assert len(_A  ) == 0
				assert circular_linked_list.is_empty() is True
				assert str(_A  ) == ""

				try:
								circular_linked_list.delete_front()
								raise AssertionError  # This should not happen
				except IndexError:
								assert True  # This should happen

				try:
								circular_linked_list.delete_tail()
								raise AssertionError  # This should not happen
				except IndexError:
								assert True  # This should happen

				try:
								circular_linked_list.delete_nth(-1  )
								raise AssertionError
				except IndexError:
								assert True

				try:
								circular_linked_list.delete_nth(0  )
								raise AssertionError
				except IndexError:
								assert True

				assert circular_linked_list.is_empty() is True
				for i in range(5  ):
								assert len(_A  ) == i
								circular_linked_list.insert_nth(_A      ,   i + 1  )
				assert str(_A  ) == "->".join(str(_A  ) for i in range(1      ,   6  )  )

				circular_linked_list.insert_tail(6  )
				assert str(_A  ) == "->".join(str(_A  ) for i in range(1      ,   7  )  )
				circular_linked_list.insert_head(0  )
				assert str(_A  ) == "->".join(str(_A  ) for i in range(0      ,   7  )  )

				assert circular_linked_list.delete_front() == 0
				assert circular_linked_list.delete_tail() == 6
				assert str(_A  ) == "->".join(str(_A  ) for i in range(1      ,   6  )  )
				assert circular_linked_list.delete_nth(2  ) == 3

				circular_linked_list.insert_nth(2      ,   3  )
				assert str(_A  ) == "->".join(str(_A  ) for i in range(1      ,   6  )  )

				assert circular_linked_list.is_empty() is False


if __name__ == "__main__":
							import doctest

							doctest.testmod()




