

def 	snake_case__			(    SCREAMING_SNAKE_CASE_		:    list			):



     '''simple docstring'''





     def merge(SCREAMING_SNAKE_CASE_		:    list	,     SCREAMING_SNAKE_CASE_		:    list			) -> list:

          def _merge():
               while left and right:
                    yield (left if left[0] <= right[0] else right).pop(0			)
               yield from left
               yield from right

          return list(_merge()			)

     if len(SCREAMING_SNAKE_CASE_			) <= 1:
          return collection
     lowercase__    :   Any      =       len(SCREAMING_SNAKE_CASE_			) // 2
     return merge(merge_sort(collection[:mid]			)	,     merge_sort(collection[mid:]			)			)


if __name__ == "__main__":
       import doctest

       doctest.testmod()
       snake_case_			  = input('''Enter numbers separated by a comma:\n''').strip()
       snake_case_			  = [int(item) for item in user_input.split(''',''')]
       print(*merge_sort(unsorted), sep=''',''')




import math

def 	snake_case__			(    SCREAMING_SNAKE_CASE_		:    int			):



     '''simple docstring'''





     lowercase__    :   Optional[Any]      =       []
     lowercase__    :   str      =       2
     lowercase__    :   Optional[Any]      =       int(math.sqrt(SCREAMING_SNAKE_CASE_			)			)  # Size of every segment
     lowercase__    :   Dict      =       [True] * (end + 1)
     lowercase__    :   Union[str, Any]      =       []

     while start <= end:
          if temp[start] is True:
               in_prime.append(SCREAMING_SNAKE_CASE_			)
               for i in range(start * start	,     end + 1	,     SCREAMING_SNAKE_CASE_			):
                    lowercase__    :   int      =       False
          start += 1
     prime += in_prime

     lowercase__    :   Optional[int]      =       end + 1
     lowercase__    :   List[str]      =       min(2 * end	,     SCREAMING_SNAKE_CASE_			)

     while low <= n:
          lowercase__    :   str      =       [True] * (high - low + 1)
          for each in in_prime:
               lowercase__    :   str      =       math.floor(low / each			) * each
               if t < low:
                    t += each

               for j in range(SCREAMING_SNAKE_CASE_	,     high + 1	,     SCREAMING_SNAKE_CASE_			):
                    lowercase__    :   Optional[Any]      =       False

          for j in range(len(SCREAMING_SNAKE_CASE_			)			):
               if temp[j] is True:
                    prime.append(j + low			)

          lowercase__    :   Optional[Any]      =       high + 1
          lowercase__    :   Optional[int]      =       min(high + end	,     SCREAMING_SNAKE_CASE_			)

     return prime

print(sieve(10**6))

