



"""simple docstring"""




from __future__ import annotations

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






@total_ordering
class      UpperCAmelCase_  (    _UpperCamelCase						):



      def __lt__(					self					:     Dict					,     A					:     Tuple						):
           return self[-1] < other[-1]



      def __eq__(					self					:     str					,     A					:     Dict						):
           return self[-1] == other[-1]







def 						__snake_case						(				SCREAMING_SNAKE_CASE__     :						list    )  ->       list:





     '''simple docstring'''

     _UpperCAmelCase      :     list[Stack]        =   []
     # sort into stacks
     for element in collection:
          _UpperCAmelCase      :     str        =   Stack([element]    )
          _UpperCAmelCase      :     List[Any]        =   bisect_left(SCREAMING_SNAKE_CASE__						,  SCREAMING_SNAKE_CASE__    )
          if i != len(SCREAMING_SNAKE_CASE__    ):
               stacks[i].append(SCREAMING_SNAKE_CASE__    )
          else:
               stacks.append(SCREAMING_SNAKE_CASE__    )

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


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





"""simple docstring"""




def 						__snake_case						(				SCREAMING_SNAKE_CASE__     :						List[str]    )  ->       str:





     '''simple docstring'''

     _UpperCAmelCase    ,	_UpperCAmelCase      :     Dict        =   [], []
     while len(SCREAMING_SNAKE_CASE__    ) > 1:
          _UpperCAmelCase    ,	_UpperCAmelCase      :     int        =   min(SCREAMING_SNAKE_CASE__    ), max(SCREAMING_SNAKE_CASE__    )
          start.append(SCREAMING_SNAKE_CASE__    )
          end.append(SCREAMING_SNAKE_CASE__    )
          collection.remove(SCREAMING_SNAKE_CASE__    )
          collection.remove(SCREAMING_SNAKE_CASE__    )
     end.reverse()
     return start + collection + end


if __name__ == "__main__":
 _lowerCAmelCase    : int							=							input("Enter numbers separated by a comma:\n").strip()
 _lowerCAmelCase    : List[str]							=							[int(item) for item in user_input.split(",")]
 print(*merge_sort(unsorted), sep=",")
