


"""simple docstring"""





def    _snake_case  (  _snake_case :	list	):

      def merge(_snake_case :	list       ,      _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(_snake_case	) <= 1:
            return collection
      lowerCAmelCase    :		Union[str, Any]				=      len(_snake_case	) // 2
      return merge(merge_sort(collection[:mid]	)       ,      merge_sort(collection[mid:]	)	)


if __name__ == "__main__":
 import doctest

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






"""simple docstring"""




from math import isclose, sqrt


def     lowercase			(SCREAMING_SNAKE_CASE_		:				float ,			SCREAMING_SNAKE_CASE_		:				float ,			SCREAMING_SNAKE_CASE_		:				float  )   ->						tuple[float, float, float]:
						SCREAMING_SNAKE_CASE													=					point_y / 4 / point_x
						SCREAMING_SNAKE_CASE													=					2 * normal_gradient / (1 + normal_gradient * normal_gradient)
						SCREAMING_SNAKE_CASE													=					(1 - normal_gradient * normal_gradient) / (
						    1 + normal_gradient * normal_gradient
						)
						SCREAMING_SNAKE_CASE													=					(sa - ca * incoming_gradient) / (ca + sa * incoming_gradient)

						# to find the next point, solve the simultaeneous equations:
						# y^2 + 4x^2 = 100
						# y - b = m * (x - a)
						# ==> A x^2 + B x + C = 0
						SCREAMING_SNAKE_CASE													=					outgoing_gradient**2 + 4
						SCREAMING_SNAKE_CASE													=					2 * outgoing_gradient * (point_y - outgoing_gradient * point_x)
						SCREAMING_SNAKE_CASE													=					(point_y - outgoing_gradient * point_x) ** 2 - 1_00

						SCREAMING_SNAKE_CASE													=					(
						    -linear_term - sqrt(linear_term**2 - 4 * quadratic_term * constant_term  )
						) / (2 * quadratic_term)
						SCREAMING_SNAKE_CASE													=					(
						    -linear_term + sqrt(linear_term**2 - 4 * quadratic_term * constant_term  )
						) / (2 * quadratic_term)

						# two solutions, one of which is our input point
						SCREAMING_SNAKE_CASE													=					x_minus if isclose(SCREAMING_SNAKE_CASE_ ,			SCREAMING_SNAKE_CASE_  ) else x_plus
						SCREAMING_SNAKE_CASE													=					point_y + outgoing_gradient * (next_x - point_x)

						return next_x, next_y, outgoing_gradient


def     lowercase			(SCREAMING_SNAKE_CASE_		:				float = 1.4 ,			SCREAMING_SNAKE_CASE_		:				float = -9.6  )   ->						int:
						SCREAMING_SNAKE_CASE													=					0
						SCREAMING_SNAKE_CASE													=					first_x_coord
						SCREAMING_SNAKE_CASE													=					first_y_coord
						SCREAMING_SNAKE_CASE													=					(10.1 - point_y) / (0.0 - point_x)

						while not (-0.01 <= point_x <= 0.01 and point_y > 0):
												SCREAMING_SNAKE_CASE							,				SCREAMING_SNAKE_CASE							,				SCREAMING_SNAKE_CASE													=					next_point(SCREAMING_SNAKE_CASE_ ,			SCREAMING_SNAKE_CASE_ ,			SCREAMING_SNAKE_CASE_  )
												num_reflections += 1

						return num_reflections


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


