
"""simple docstring"""




def lowercase_						(     _snake_case     ,_snake_case		):
							SCREAMING_SNAKE_CASE__		: Tuple     =     [1]
							for i in range(2     ,_lowercase		):
														factorials.append(factorials[-1] * i		)
							assert 0 <= k < factorials[-1] * n, "k out of bounds"

							SCREAMING_SNAKE_CASE__		: Dict     =     []
							SCREAMING_SNAKE_CASE__		: List[str]     =     list(range(_lowercase		)		)

							# Find permutation
							while factorials:
														SCREAMING_SNAKE_CASE__		: Dict     =     factorials.pop()
														SCREAMING_SNAKE_CASE__   ,   SCREAMING_SNAKE_CASE__		: Tuple     =     divmod(_lowercase     ,_lowercase		)
														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


UpperCAmelCase__   :					Tuple												=				{
    'configuration_mask2former': [
        'MASK2FORMER_PRETRAINED_CONFIG_ARCHIVE_MAP',
        'Mask2FormerConfig',
    ],
}

try:
					if not is_vision_available():
										raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
					pass
else:
					UpperCAmelCase__   :					str												=				['Mask2FormerImageProcessor']

try:
					if not is_torch_available():
										raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
					pass
else:
					UpperCAmelCase__   :					Any												=				[
					    'MASK2FORMER_PRETRAINED_MODEL_ARCHIVE_LIST',
					    'Mask2FormerForUniversalSegmentation',
					    'Mask2FormerModel',
					    'Mask2FormerPreTrainedModel',
					]

if TYPE_CHECKING:
					from .configuration_maskaformer import MASK2FORMER_PRETRAINED_CONFIG_ARCHIVE_MAP, MaskaFormerConfig

					try:
										if not is_vision_available():
															raise OptionalDependencyNotAvailable()
					except OptionalDependencyNotAvailable:
										pass
					else:
										from .image_processing_maskaformer import MaskaFormerImageProcessor

					try:
										if not is_torch_available():
															raise OptionalDependencyNotAvailable()
					except OptionalDependencyNotAvailable:
										pass
					else:
										from .modeling_maskaformer import (
										    MASK2FORMER_PRETRAINED_MODEL_ARCHIVE_LIST,
										    MaskaFormerForUniversalSegmentation,
										    MaskaFormerModel,
										    MaskaFormerPreTrainedModel,
										)


else:
					import sys

					UpperCAmelCase__   :					Union[str, Any]												=				_LazyModule(__name__, globals()['__file__'], _import_structure)




