






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


lowerCamelCase_							      = logging.get_logger(__name__)

lowerCamelCase_							      = {
    '''uclanlp/visualbert-vqa''': '''https://huggingface.co/uclanlp/visualbert-vqa/resolve/main/config.json''',
    '''uclanlp/visualbert-vqa-pre''': '''https://huggingface.co/uclanlp/visualbert-vqa-pre/resolve/main/config.json''',
    '''uclanlp/visualbert-vqa-coco-pre''': (
        '''https://huggingface.co/uclanlp/visualbert-vqa-coco-pre/resolve/main/config.json'''
    ),
    '''uclanlp/visualbert-vcr''': '''https://huggingface.co/uclanlp/visualbert-vcr/resolve/main/config.json''',
    '''uclanlp/visualbert-vcr-pre''': '''https://huggingface.co/uclanlp/visualbert-vcr-pre/resolve/main/config.json''',
    '''uclanlp/visualbert-vcr-coco-pre''': (
        '''https://huggingface.co/uclanlp/visualbert-vcr-coco-pre/resolve/main/config.json'''
    ),
    '''uclanlp/visualbert-nlvr2''': '''https://huggingface.co/uclanlp/visualbert-nlvr2/resolve/main/config.json''',
    '''uclanlp/visualbert-nlvr2-pre''': '''https://huggingface.co/uclanlp/visualbert-nlvr2-pre/resolve/main/config.json''',
    '''uclanlp/visualbert-nlvr2-coco-pre''': (
        '''https://huggingface.co/uclanlp/visualbert-nlvr2-coco-pre/resolve/main/config.json'''
    )
    # See all VisualBERT models at https://huggingface.co/models?filter=visual_bert
}







class      UpperCamelCase_			(__A	):
	__magic_name__       =							'''visual_bert'''





	def __init__( self   :					Tuple      ,      lowerCAmelCase_   :					List[Any]=30_522      ,      lowerCAmelCase_   :					str=768      ,      lowerCAmelCase_   :					List[str]=512      ,      lowerCAmelCase_   :					int=12      ,      lowerCAmelCase_   :					List[str]=12      ,      lowerCAmelCase_   :					List[str]=3_072      ,      lowerCAmelCase_   :					Any="gelu"      ,      lowerCAmelCase_   :					Tuple=0.1      ,      lowerCAmelCase_   :					Tuple=0.1      ,      lowerCAmelCase_   :					List[str]=512      ,      lowerCAmelCase_   :					Dict=2      ,      lowerCAmelCase_   :					Optional[int]=0.0_2      ,      lowerCAmelCase_   :					Any=1e-12      ,      lowerCAmelCase_   :					Dict=False      ,      lowerCAmelCase_   :					Union[str, Any]=True      ,      lowerCAmelCase_   :					List[str]=1      ,      lowerCAmelCase_   :					Optional[Any]=0      ,      lowerCAmelCase_   :					Optional[Any]=2      ,      **lowerCAmelCase_   :					int      ,      )		->     Optional[int]:
				super().__init__(pad_token_id=lowerCAmelCase_      ,      bos_token_id=lowerCAmelCase_      ,      eos_token_id=lowerCAmelCase_      ,      **lowerCAmelCase_		)

				UpperCAmelCase_	:					int     	=   vocab_size
				UpperCAmelCase_	:					Optional[Any]     	=   max_position_embeddings
				UpperCAmelCase_	:					Union[str, Any]     	=   hidden_size
				UpperCAmelCase_	:					Dict     	=   visual_embedding_dim
				UpperCAmelCase_	:					Optional[int]     	=   num_hidden_layers
				UpperCAmelCase_	:					Dict     	=   num_attention_heads
				UpperCAmelCase_	:					Tuple     	=   intermediate_size
				UpperCAmelCase_	:					Optional[Any]     	=   hidden_act
				UpperCAmelCase_	:					List[str]     	=   hidden_dropout_prob
				UpperCAmelCase_	:					Any     	=   attention_probs_dropout_prob
				UpperCAmelCase_	:					int     	=   initializer_range
				UpperCAmelCase_	:					str     	=   type_vocab_size
				UpperCAmelCase_	:					List[Any]     	=   layer_norm_eps
				UpperCAmelCase_	:					Optional[Any]     	=   bypass_transformer
				UpperCAmelCase_	:					int     	=   special_visual_initialize




from __future__ import annotations

from bisect import bisect_left
from functools import total_ordering
from heapq import merge





@total_ordering
class     lowerCAmelCase__     (				SCREAMING_SNAKE_CASE_			):


		'''simple docstring'''






		def __lt__(       self     :     List[Any]     ,  snake_case__     :     int		)      ->	Any:
				return self[-1] < other[-1]



		def __eq__(       self     :     Tuple     ,  snake_case__     :     Union[str, Any]		)      ->	Union[str, Any]:
				return self[-1] == other[-1]



def 	lowerCamelCase					(	UpperCamelCase     :				list							)   ->    list:
		_lowerCamelCase				   =  []
		# sort into stacks
		for element in collection:
				_lowerCamelCase				   =  Stack([element]							)
				_lowerCamelCase				   =  bisect_left(UpperCamelCase			,       UpperCamelCase							)
				if i != len(UpperCamelCase							):
						stacks[i].append(UpperCamelCase							)
				else:
						stacks.append(UpperCamelCase							)

    # use a heap-based merge to merge stack efficiently
		_lowerCamelCase				   =  merge(*(reversed(UpperCamelCase							) for stack in stacks)							)
		return collection


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