
from __future__ import annotations

from math import ceil, floor, sqrt




def        __UpperCamelCase					(    lowerCAmelCase__							:    int = 2_0_0_0_0_0_0  ):
 __a			:  list[int]		    =  [0]
 __a			:  int

 for idx in range(1  ,       ceil(sqrt(target * 2  ) * 1.1  )  ):
  triangle_numbers.append(triangle_numbers[-1] + idx  )

 # we want this to be as close as possible to target
 __a			:  int		    =  0
 # the area corresponding to the grid that gives the product closest to target
 __a			:  int		    =  0
 # an estimate of b, using the quadratic formula
 __a			:  float
 # the largest integer less than b_estimate
 __a			:  int
 # the largest integer less than b_estimate
 __a			:  int
 # the triangle number corresponding to b_floor
 __a			:  int
 # the triangle number corresponding to b_ceil
 __a			:  int

 for idx_a, triangle_a in enumerate(triangle_numbers[1:]  ,       1  ):
  __a			:  str		    =  (-1 + sqrt(1 + 8 * target / triangle_a  )) / 2
  __a			:  str		    =  floor(lowerCAmelCase__  )
  __a			:  Tuple		    =  ceil(lowerCAmelCase__  )
  __a			:  Tuple		    =  triangle_numbers[b_floor]
  __a			:  Optional[int]		    =  triangle_numbers[b_ceil]

  if abs(target - triangle_b_first_guess * triangle_a  ) < abs(
      target - best_product  ):
   __a			:  List[Any]		    =  triangle_b_first_guess * triangle_a
   __a			:  Optional[Any]		    =  idx_a * b_floor

  if abs(target - triangle_b_second_guess * triangle_a  ) < abs(
      target - best_product  ):
   __a			:  List[Any]		    =  triangle_b_second_guess * triangle_a
   __a			:  str		    =  idx_a * b_ceil

 return area


if __name__ == "__main__":
      print(F"""{solution() = }""")


def        __UpperCamelCase					(    lowerCAmelCase__							:    list  ):

 def merge(lowerCAmelCase__							:    list  ,       lowerCAmelCase__							:    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(lowerCAmelCase__  ) <= 1:
  return collection
 __a			:  str		    =  len(lowerCAmelCase__  ) // 2
 return merge(merge_sort(collection[:mid]  )  ,       merge_sort(collection[mid:]  )  )


if __name__ == "__main__":
      import doctest

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