from typing import TYPE_CHECKING

from ...utils import (
    OptionalDependencyNotAvailable,
    _LazyModule,
    is_flax_available,
    is_sentencepiece_available,
    is_tf_available,
    is_tokenizers_available,
    is_torch_available,
)


lowerCAmelCase__	:  str 		={
    '''configuration_big_bird''': ['''BIG_BIRD_PRETRAINED_CONFIG_ARCHIVE_MAP''', '''BigBirdConfig''', '''BigBirdOnnxConfig'''],
}

try:
			if not is_sentencepiece_available():
						raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
			pass
else:
			lowerCAmelCase__	:  int 		=['''BigBirdTokenizer''']

try:
			if not is_tokenizers_available():
						raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
			pass
else:
			lowerCAmelCase__	:  str 		=['''BigBirdTokenizerFast''']

try:
			if not is_torch_available():
						raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
			pass
else:
			lowerCAmelCase__	:  Optional[int] 		=[
			    '''BIG_BIRD_PRETRAINED_MODEL_ARCHIVE_LIST''',
			    '''BigBirdForCausalLM''',
			    '''BigBirdForMaskedLM''',
			    '''BigBirdForMultipleChoice''',
			    '''BigBirdForPreTraining''',
			    '''BigBirdForQuestionAnswering''',
			    '''BigBirdForSequenceClassification''',
			    '''BigBirdForTokenClassification''',
			    '''BigBirdLayer''',
			    '''BigBirdModel''',
			    '''BigBirdPreTrainedModel''',
			    '''load_tf_weights_in_big_bird''',
			]

try:
			if not is_flax_available():
						raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
			pass
else:
			lowerCAmelCase__	:  int 		=[
			    '''FlaxBigBirdForCausalLM''',
			    '''FlaxBigBirdForMaskedLM''',
			    '''FlaxBigBirdForMultipleChoice''',
			    '''FlaxBigBirdForPreTraining''',
			    '''FlaxBigBirdForQuestionAnswering''',
			    '''FlaxBigBirdForSequenceClassification''',
			    '''FlaxBigBirdForTokenClassification''',
			    '''FlaxBigBirdModel''',
			    '''FlaxBigBirdPreTrainedModel''',
			]

if TYPE_CHECKING:
			from .configuration_big_bird import BIG_BIRD_PRETRAINED_CONFIG_ARCHIVE_MAP, BigBirdConfig, BigBirdOnnxConfig

			try:
						if not is_sentencepiece_available():
									raise OptionalDependencyNotAvailable()
			except OptionalDependencyNotAvailable:
						pass
			else:
						from .tokenization_big_bird import BigBirdTokenizer

			try:
						if not is_tokenizers_available():
									raise OptionalDependencyNotAvailable()
			except OptionalDependencyNotAvailable:
						pass
			else:
						from .tokenization_big_bird_fast import BigBirdTokenizerFast

			try:
						if not is_torch_available():
									raise OptionalDependencyNotAvailable()
			except OptionalDependencyNotAvailable:
						pass
			else:
						from .modeling_big_bird import (
						    BIG_BIRD_PRETRAINED_MODEL_ARCHIVE_LIST,
						    BigBirdForCausalLM,
						    BigBirdForMaskedLM,
						    BigBirdForMultipleChoice,
						    BigBirdForPreTraining,
						    BigBirdForQuestionAnswering,
						    BigBirdForSequenceClassification,
						    BigBirdForTokenClassification,
						    BigBirdLayer,
						    BigBirdModel,
						    BigBirdPreTrainedModel,
						    load_tf_weights_in_big_bird,
						)

			try:
						if not is_flax_available():
									raise OptionalDependencyNotAvailable()
			except OptionalDependencyNotAvailable:
						pass
			else:
						from .modeling_flax_big_bird import (
						    FlaxBigBirdForCausalLM,
						    FlaxBigBirdForMaskedLM,
						    FlaxBigBirdForMultipleChoice,
						    FlaxBigBirdForPreTraining,
						    FlaxBigBirdForQuestionAnswering,
						    FlaxBigBirdForSequenceClassification,
						    FlaxBigBirdForTokenClassification,
						    FlaxBigBirdModel,
						    FlaxBigBirdPreTrainedModel,
						)

else:
			import sys

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











def 			__lowercase     (				a__     )       ->				list:
							__SCREAMING_SNAKE_CASE								=      1.3
							__SCREAMING_SNAKE_CASE								=      len(a__     )
							__SCREAMING_SNAKE_CASE								=      False

							while not completed:
														# Update the gap value for a next comb
														__SCREAMING_SNAKE_CASE								=      int(gap / shrink_factor     )
														if gap <= 1:
																					__SCREAMING_SNAKE_CASE								=      True

														__SCREAMING_SNAKE_CASE								=      0
														while index + gap < len(a__     ):
																					if data[index] > data[index + gap]:
																												# Swap values
																												__SCREAMING_SNAKE_CASE							, __SCREAMING_SNAKE_CASE								=      data[index + gap], data[index]
																												__SCREAMING_SNAKE_CASE								=      False
																					index += 1

							return data


if __name__ == "__main__":
			import doctest

			doctest.testmod()

			lowerCAmelCase__	:  int 		=input('''Enter numbers separated by a comma:\n''').strip()
			lowerCAmelCase__	:  Dict 		=[int(item) for item in user_input.split(''',''')]
			print(comb_sort(unsorted))






