'''simple docstring'''


__lowerCAmelCase	:       Any						       =	frozenset(
    [
        "prompt",
        "height",
        "width",
        "guidance_scale",
        "negative_prompt",
        "prompt_embeds",
        "negative_prompt_embeds",
        "cross_attention_kwargs",
    ]
)

__lowerCAmelCase	:       Optional[int]						       =	frozenset(["prompt", "negative_prompt"])

__lowerCAmelCase	:       Tuple						       =	frozenset([])

__lowerCAmelCase	:       str						       =	frozenset(["image"])

__lowerCAmelCase	:       int						       =	frozenset(
    [
        "image",
        "height",
        "width",
        "guidance_scale",
    ]
)

__lowerCAmelCase	:       Optional[Any]						       =	frozenset(["image"])

__lowerCAmelCase	:       int						       =	frozenset(
    [
        "prompt",
        "image",
        "height",
        "width",
        "guidance_scale",
        "negative_prompt",
        "prompt_embeds",
        "negative_prompt_embeds",
    ]
)

__lowerCAmelCase	:       str						       =	frozenset(["prompt", "image", "negative_prompt"])

__lowerCAmelCase	:       Union[str, Any]						       =	frozenset(
    [
        # Text guided image variation with an image mask
        "prompt",
        "image",
        "mask_image",
        "height",
        "width",
        "guidance_scale",
        "negative_prompt",
        "prompt_embeds",
        "negative_prompt_embeds",
    ]
)

__lowerCAmelCase	:       int						       =	frozenset(["prompt", "image", "mask_image", "negative_prompt"])

__lowerCAmelCase	:       Any						       =	frozenset(
    [
        # image variation with an image mask
        "image",
        "mask_image",
        "height",
        "width",
        "guidance_scale",
    ]
)

__lowerCAmelCase	:       Union[str, Any]						       =	frozenset(["image", "mask_image"])

__lowerCAmelCase	:       str						       =	frozenset(
    [
        "example_image",
        "image",
        "mask_image",
        "height",
        "width",
        "guidance_scale",
    ]
)

__lowerCAmelCase	:       int						       =	frozenset(["example_image", "image", "mask_image"])

__lowerCAmelCase	:       int						       =	frozenset(["class_labels"])

__lowerCAmelCase	:       List[str]						       =	frozenset(["class_labels"])

__lowerCAmelCase	:       Optional[Any]						       =	frozenset(["batch_size"])

__lowerCAmelCase	:       Union[str, Any]						       =	frozenset([])

__lowerCAmelCase	:       Union[str, Any]						       =	frozenset(["batch_size"])

__lowerCAmelCase	:       str						       =	frozenset([])

__lowerCAmelCase	:       Optional[Any]						       =	frozenset(
    [
        "prompt",
        "audio_length_in_s",
        "guidance_scale",
        "negative_prompt",
        "prompt_embeds",
        "negative_prompt_embeds",
        "cross_attention_kwargs",
    ]
)

__lowerCAmelCase	:       List[str]						       =	frozenset(["prompt", "negative_prompt"])
__lowerCAmelCase	:       int						       =	frozenset(["input_tokens"])

__lowerCAmelCase	:       Union[str, Any]						       =	frozenset(["input_tokens"])

'''simple docstring'''


def       lowerCAmelCase					(		UpperCamelCase__				:   Tuple       ):


	"""simple docstring"""
	# if the collection is empty, returns empty
	if collection == []:
		return []

	# get some information about the collection
	__UpperCAmelCase							=			len(UpperCamelCase__       )
	__UpperCAmelCase							=			max(UpperCamelCase__       )
	__UpperCAmelCase							=			min(UpperCamelCase__       )

	# create the counting array
	__UpperCAmelCase							=			coll_max + 1 - coll_min
	__UpperCAmelCase							=			[0] * counting_arr_length

	# count how much a number appears in the collection
	for number in collection:
		counting_arr[number - coll_min] += 1

	# sum each position with it's predecessors. now, counting_arr[i] tells
	# us how many elements <= i has in the collection
	for i in range(1    ,					UpperCamelCase__       ):
		__UpperCAmelCase							=			counting_arr[i] + counting_arr[i - 1]

	# create the output collection
	__UpperCAmelCase							=			[0] * coll_len

	# place the elements in the output, respecting the original order (stable
	# sort) from end to begin, updating counting_arr
	for i in reversed(range(0    ,					UpperCamelCase__       )       ):
		__UpperCAmelCase							=			collection[i]
		counting_arr[collection[i] - coll_min] -= 1

	return ordered





def       lowerCAmelCase					(		UpperCamelCase__				:   Any       ):


	"""simple docstring"""
	return "".join([chr(UpperCamelCase__       ) for i in counting_sort([ord(UpperCamelCase__       ) for c in string]       )]       )


if __name__ == "__main__":
					# Test string sort
					assert counting_sort_string("thisisthestring") == "eghhiiinrsssttt"

					__lowerCAmelCase	:       str						       =	input("Enter numbers separated by a comma:\n").strip()
					__lowerCAmelCase	:       List[Any]						       =	[int(item) for item in user_input.split(",")]
					print(counting_sort(unsorted))
