


'''simple docstring'''



from math import isclose, sqrt







def      _UpperCamelCase   (		UpperCamelCase__			,   UpperCamelCase__			,   UpperCamelCase__       ):
			UpperCAmelCase__	:       List[str]   =  point_y / 4 / point_x
			UpperCAmelCase__	:       Optional[Any]   =  2 * normal_gradient / (1 + normal_gradient * normal_gradient)
			UpperCAmelCase__	:       List[str]   =  (1 - normal_gradient * normal_gradient) / (
			    1 + normal_gradient * normal_gradient
			)
			UpperCAmelCase__	:       int   =  (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
			UpperCAmelCase__	:       Optional[int]   =  outgoing_gradient**2 + 4
			UpperCAmelCase__	:       int   =  2 * outgoing_gradient * (point_y - outgoing_gradient * point_x)
			UpperCAmelCase__	:       Optional[Any]   =  (point_y - outgoing_gradient * point_x) ** 2 - 1_0_0

			UpperCAmelCase__	:       Dict   =  (
			    -linear_term - sqrt(linear_term**2 - 4 * quadratic_term * constant_term       )
			) / (2 * quadratic_term)
			UpperCAmelCase__	:       Optional[Any]   =  (
			    -linear_term + sqrt(linear_term**2 - 4 * quadratic_term * constant_term       )
			) / (2 * quadratic_term)

			# two solutions, one of which is our input point
			UpperCAmelCase__	:       List[Any]   =  x_minus if isclose(_UpperCamelCase			,   _UpperCamelCase       ) else x_plus
			UpperCAmelCase__	:       str   =  point_y + outgoing_gradient * (next_x - point_x)

			return next_x, next_y, outgoing_gradient







def      _UpperCamelCase   (		UpperCamelCase__ = 1.4			,   UpperCamelCase__ = -9.6       ):
			UpperCAmelCase__	:       int   =  0
			UpperCAmelCase__	:       float   =  first_x_coord
			UpperCAmelCase__	:       float   =  first_y_coord
			UpperCAmelCase__	:       float   =  (10.1 - point_y) / (0.0 - point_x)

			while not (-0.01 <= point_x <= 0.01 and point_y > 0):
						UpperCAmelCase__	:       int   =  next_point(_UpperCamelCase			,   _UpperCamelCase			,   _UpperCamelCase       )
						num_reflections += 1

			return num_reflections


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

"""simple docstring"""




def 			_lowerCAmelCase		(		_UpperCamelCase    ):






  """simple docstring"""



  stooge(_UpperCamelCase			,					0			,					len(_UpperCamelCase    ) - 1    )
  return arr




def 			_lowerCAmelCase		(		_UpperCamelCase			,					_UpperCamelCase			,					_UpperCamelCase    ):






  """simple docstring"""



  if i >= h:
    return

  # If first element is smaller than the last then swap them
  if arr[i] > arr[h]:
    _lowercase			,					_lowercase:      Optional[Any]   			=  arr[h], arr[i]

  # If there are more than 2 elements in the array
  if h - i + 1 > 2:
    _lowercase:      Tuple   			=  (int)((h - i + 1) / 3    )

    # Recursively sort first 2/3 elements
    stooge(_UpperCamelCase			,					_UpperCamelCase			,					(h - t)    )

    # Recursively sort last 2/3 elements
    stooge(_UpperCamelCase			,					i + t			,					(_UpperCamelCase)    )

    # Recursively sort first 2/3 elements
    stooge(_UpperCamelCase			,					_UpperCamelCase			,					(h - t)    )


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