'''simple docstring'''

from typing import TYPE_CHECKING

from ...utils import OptionalDependencyNotAvailable, _LazyModule, is_speech_available, is_torch_available


__a:			str	       =       {
    """configuration_audio_spectrogram_transformer""": [
        """AUDIO_SPECTROGRAM_TRANSFORMER_PRETRAINED_CONFIG_ARCHIVE_MAP""",
        """ASTConfig""",
    ]
}

try:
  if not is_torch_available():
    raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
  pass
else:
  __a:			List[Any]	       =       [
      """AUDIO_SPECTROGRAM_TRANSFORMER_PRETRAINED_MODEL_ARCHIVE_LIST""",
      """ASTForAudioClassification""",
      """ASTModel""",
      """ASTPreTrainedModel""",
  ]

try:
  if not is_speech_available():
    raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
  pass
else:
  __a:			Dict	       =       ["""ASTFeatureExtractor"""]

if TYPE_CHECKING:
  from .configuration_audio_spectrogram_transformer import (
      AUDIO_SPECTROGRAM_TRANSFORMER_PRETRAINED_CONFIG_ARCHIVE_MAP,
      ASTConfig,
  )

  try:
    if not is_torch_available():
      raise OptionalDependencyNotAvailable()
  except OptionalDependencyNotAvailable:
    pass
  else:
    from .modeling_audio_spectrogram_transformer import (
        AUDIO_SPECTROGRAM_TRANSFORMER_PRETRAINED_MODEL_ARCHIVE_LIST,
        ASTForAudioClassification,
        ASTModel,
        ASTPreTrainedModel,
    )

  try:
    if not is_speech_available():
      raise OptionalDependencyNotAvailable()
  except OptionalDependencyNotAvailable:
    pass
  else:
    from .feature_extraction_audio_spectrogram_transformer import ASTFeatureExtractor


else:
  import sys

  __a:			Optional[int]	       =       _LazyModule(__name__, globals()["""__file__"""], _import_structure, module_spec=__spec__)


'''simple docstring'''

def       __UpperCamelCase	(       UpperCAmelCase					):

 def merge(UpperCAmelCase		,					UpperCAmelCase					) -> 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(UpperCAmelCase					) <= 1:
  return collection
 lowercase__    :   int						= len(UpperCAmelCase					) // 2
 return merge(merge_sort(collection[:mid]					)		,					merge_sort(collection[mid:]					)					)


if __name__ == "__main__":
  import doctest

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

