


'''simple docstring'''
from ...configuration_utils import PretrainedConfig
from ...utils import logging


UpperCAmelCase_ :     Dict								=      logging.get_logger(__name__)

UpperCAmelCase_ :     Tuple								=      {"openai-gpt": "https://huggingface.co/openai-gpt/resolve/main/config.json"}

class 						_lowerCamelCase					(    _UpperCAmelCase				):




 '''simple docstring'''
 __lowercase				:		str    							=						'''openai-gpt'''
 __lowercase				:		Dict    							=						{
     '''max_position_embeddings''': '''n_positions''',
     '''hidden_size''': '''n_embd''',
     '''num_attention_heads''': '''n_head''',
     '''num_hidden_layers''': '''n_layer''',
 }


 def __init__(      self      ,      __lowercase=40_478      ,      __lowercase=512      ,      __lowercase=768      ,      __lowercase=12      ,      __lowercase=12      ,      __lowercase="gelu"      ,      __lowercase=0.1      ,      __lowercase=0.1      ,      __lowercase=0.1      ,      __lowercase=1E-5      ,      __lowercase=0.0_2      ,      __lowercase="cls_index"      ,      __lowercase=True      ,      __lowercase=None      ,      __lowercase=True      ,      __lowercase=0.1      ,      **__lowercase      ,      ):

    """simple docstring"""







    __A  :		Optional[Any]       =			vocab_size
    __A  :		List[Any]       =			n_positions
    __A  :		List[str]       =			n_embd
    __A  :		Dict       =			n_layer
    __A  :		List[str]       =			n_head
    __A  :		List[Any]       =			afn
    __A  :		Any       =			resid_pdrop
    __A  :		Tuple       =			embd_pdrop
    __A  :		Union[str, Any]       =			attn_pdrop
    __A  :		Optional[int]       =			layer_norm_epsilon
    __A  :		int       =			initializer_range
    __A  :		List[Any]       =			summary_type
    __A  :		Any       =			summary_use_proj
    __A  :		str       =			summary_activation
    __A  :		Tuple       =			summary_first_dropout
    __A  :		Tuple       =			summary_proj_to_labels
    super().__init__(**lowercase_						)










'''simple docstring'''
from __future__ import annotations


def 			_lowercase       (				UpperCamelCase__       :					list,				UpperCamelCase__       :					int,				UpperCamelCase__       :					int,				UpperCamelCase__       :					int			):
 __A  :		Dict       =			[]
 __A     ,__A  :		Dict       =			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  :		Optional[Any]       =			result + left + right
 return input_list


def 			_lowercase       (				UpperCamelCase__       :					list			):
 if len(UpperCamelCase__			) <= 1:
  return input_list
 __A  :		Any       =			list(UpperCamelCase__			)

 # iteration for two-way merging
 __A  :		Dict       =			2
 while p <= len(UpperCamelCase__			):
  # getting low, high and middle value for merge-sort of single list
  for i in range(0,				len(UpperCamelCase__			),				UpperCamelCase__			):
   __A  :		Union[str, Any]       =			i
   __A  :		Tuple       =			i + p - 1
   __A  :		Union[str, Any]       =			(low + high + 1) // 2
   __A  :		Tuple       =			merge(UpperCamelCase__,				UpperCamelCase__,				UpperCamelCase__,				UpperCamelCase__			)
  # final merge of last two parts
  if p * 2 >= len(UpperCamelCase__			):
   __A  :		Optional[int]       =			i
   __A  :		str       =			merge(UpperCamelCase__,				0,				UpperCamelCase__,				len(UpperCamelCase__			) - 1			)
   break
  p *= 2

 return input_list


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






