






"""simple docstring"""
def 			__UpperCamelCase	(		snake_case__ = 600_851_475_143					):

	try:
		A_		:						Optional[int]	    =   int(snake_case__					)
	except (TypeError, ValueError):
		raise TypeError("""Parameter n must be int or castable to int."""					)
	if n <= 0:
		raise ValueError("""Parameter n must be greater than or equal to one."""					)
	A_		:						Tuple	    =   2
	A_		:						int	    =   0
	if n == 2:
		return 2
	while n > 2:
		while n % i != 0:
			i += 1
		A_		:						str	    =   i
		while n % i == 0:
			A_		:						List[Any]	    =   n // i
		i += 1
	return int(snake_case__					)


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









"""simple docstring"""
def 			__UpperCamelCase	(		snake_case__   ,   snake_case__   ,   snake_case__					):
	return not any(
	    neighbour == 1 and colored_vertices[i] == color
	    for i, neighbour in enumerate(snake_case__					)					)






def 			__UpperCamelCase	(		snake_case__   ,   snake_case__   ,   snake_case__   ,   snake_case__					):

	# Base Case
	if index == len(snake_case__					):
		return True

	# Recursive Step
	for i in range(snake_case__					):
		if valid_coloring(graph[index]   ,   snake_case__   ,   snake_case__					):
			# Color current vertex
			A_		:						Dict	    =   i
			# Validate coloring
			if util_color(snake_case__   ,   snake_case__   ,   snake_case__   ,   index + 1					):
				return True
			# Backtrack
			A_		:						Union[str, Any]	    =   -1
	return False






def 			__UpperCamelCase	(		snake_case__   ,   snake_case__					):
	A_		:						int	    =   [-1] * len(snake_case__					)

	if util_color(snake_case__   ,   snake_case__   ,   snake_case__   ,   0					):
		return colored_vertices

	return []

