



'''simple docstring'''

from diffusers.utils.testing_utils import require_onnxruntime






@require_onnxruntime
class 						a_		:
							pass









'''simple docstring'''

from __future__ import annotations

from bisect import bisect_left
from functools import total_ordering
from heapq import merge






@total_ordering
class 						a_		(     snake_case    ):


							def __lt__(				self   :						List[Any]      ,						a_   :						Optional[int]			)			->					List[str]:
										return self[-1] < other[-1]




							def __eq__(				self   :						int      ,						a_   :						Union[str, Any]			)			->					List[str]:
										return self[-1] == other[-1]







def a_     (    __UpperCAmelCase					)				->					list:





			"""simple docstring"""







			snake_case:    list[Stack]      							=[]
			# sort into stacks
			for element in collection:
						snake_case:    int      							=Stack([element]					)
						snake_case:    Union[str, Any]      							=bisect_left(__UpperCAmelCase				,							__UpperCAmelCase					)
						if i != len(__UpperCAmelCase					):
									stacks[i].append(__UpperCAmelCase					)
						else:
									stacks.append(__UpperCAmelCase					)

    # use a heap-based merge to merge stack efficiently
			snake_case:    int      							=merge(*(reversed(__UpperCAmelCase					) for stack in stacks)					)
			return collection


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




