





from __future__ import annotations







def        __lowerCamelCase (							__a       :list   ,					__a       :int   ,					__a       :int   ,					__a       :int   )		->    list:






		"""simple docstring"""

		A__  				=       []
		A__				,      A__  				=       input_list[low:mid], input_list[mid : high + 1]
		while left and right:
				result.append((left if left[0] <= right[0] else right).pop(0   )   )
		A__  				=       result + left + right
		return input_list







def        __lowerCamelCase (							__a       :list   )		->    list:






		"""simple docstring"""

		if len(__a   ) <= 1:
				return input_list
		A__  				=       list(__a   )

		# iteration for two-way merging
		A__  				=       2
		while p <= len(__a   ):
				# getting low, high and middle value for merge-sort of single list
				for i in range(0   ,					len(__a   )   ,					__a   ):
						A__  				=       i
						A__  				=       i + p - 1
						A__  				=       (low + high + 1) // 2
						A__  				=       merge(__a   ,					__a   ,					__a   ,					__a   )
				# final merge of last two parts
				if p * 2 >= len(__a   ):
						A__  				=       i
						A__  				=       merge(__a   ,					0   ,					__a   ,					len(__a   ) - 1   )
						break
				p *= 2

		return input_list


if __name__ == "__main__":
					A   : List[Any]			=				input('''Enter numbers separated by a comma:\n''').strip()
					if user_input == "":
										A   : int			=				[]
					else:
										A   : Tuple			=				[int(item.strip()) for item in user_input.split(''',''')]
					print(iter_merge_sort(unsorted))










from maths.is_square_free import is_square_free
from maths.prime_factors import prime_factors







def        __lowerCamelCase (							__a       :int   )		->    int:






		"""simple docstring"""

		A__  				=       prime_factors(__a   )
		if is_square_free(__a   ):
				return -1 if len(__a   ) % 2 else 1
		return 0


if __name__ == "__main__":
					import doctest

					doctest.testmod()



