






"""simple docstring"""



def 						lowercase    (				__snake_case				: Union[str, Any]		,					__snake_case				: Tuple	):
		lowercase_ : Tuple							       =   [1]
		for i in range(2		,					__snake_case	):
				factorials.append(factorials[-1] * i	)
		assert 0 <= k < factorials[-1] * n, "k out of bounds"

		lowercase_ : str							       =   []
		lowercase_ : str							       =   list(range(__snake_case	)	)

		# Find permutation
		while factorials:
				lowercase_ : int							       =   factorials.pop()
				lowercase_       ,					lowercase_ : List[Any]							       =   divmod(__snake_case		,					__snake_case	)
				permutation.append(elements[number]	)
				elements.remove(elements[number]	)
		permutation.append(elements[0]	)

		return permutation


if __name__ == "__main__":
						import doctest

						doctest.testmod()











"""simple docstring"""



from typing import TYPE_CHECKING

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


__A		:       List[str]  				=		{
    '''configuration_mobilenet_v2''': [
        '''MOBILENET_V2_PRETRAINED_CONFIG_ARCHIVE_MAP''',
        '''MobileNetV2Config''',
        '''MobileNetV2OnnxConfig''',
    ],
}

try:
						if not is_vision_available():
												raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
						pass
else:
						__A		:       Dict  				=		['''MobileNetV2FeatureExtractor''']
						__A		:       Optional[int]  				=		['''MobileNetV2ImageProcessor''']


try:
						if not is_torch_available():
												raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
						pass
else:
						__A		:       Optional[Any]  				=		[
						    '''MOBILENET_V2_PRETRAINED_MODEL_ARCHIVE_LIST''',
						    '''MobileNetV2ForImageClassification''',
						    '''MobileNetV2ForSemanticSegmentation''',
						    '''MobileNetV2Model''',
						    '''MobileNetV2PreTrainedModel''',
						    '''load_tf_weights_in_mobilenet_v2''',
						]


if TYPE_CHECKING:
						from .configuration_mobilenet_va import (
						    MOBILENET_V2_PRETRAINED_CONFIG_ARCHIVE_MAP,
						    MobileNetVaConfig,
						    MobileNetVaOnnxConfig,
						)

						try:
												if not is_vision_available():
																		raise OptionalDependencyNotAvailable()
						except OptionalDependencyNotAvailable:
												pass
						else:
												from .feature_extraction_mobilenet_va import MobileNetVaFeatureExtractor
												from .image_processing_mobilenet_va import MobileNetVaImageProcessor

						try:
												if not is_torch_available():
																		raise OptionalDependencyNotAvailable()
						except OptionalDependencyNotAvailable:
												pass
						else:
												from .modeling_mobilenet_va import (
												    MOBILENET_V2_PRETRAINED_MODEL_ARCHIVE_LIST,
												    MobileNetVaForImageClassification,
												    MobileNetVaForSemanticSegmentation,
												    MobileNetVaModel,
												    MobileNetVaPreTrainedModel,
												    load_tf_weights_in_mobilenet_va,
												)


else:
						import sys

						__A		:       List[Any]  				=		_LazyModule(__name__, globals()['''__file__'''], _import_structure, module_spec=__spec__)



