"""simple docstring"""






from typing import TYPE_CHECKING

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


lowerCAmelCase__  :  int						     =	{
    'configuration_ctrl': ['CTRL_PRETRAINED_CONFIG_ARCHIVE_MAP', 'CTRLConfig'],
    'tokenization_ctrl': ['CTRLTokenizer'],
}

try:
						if not is_torch_available():
												raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
						pass
else:
						lowerCAmelCase__  :  List[str]						     =	[
						    'CTRL_PRETRAINED_MODEL_ARCHIVE_LIST',
						    'CTRLForSequenceClassification',
						    'CTRLLMHeadModel',
						    'CTRLModel',
						    'CTRLPreTrainedModel',
						]

try:
						if not is_tf_available():
												raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
						pass
else:
						lowerCAmelCase__  :  int						     =	[
						    'TF_CTRL_PRETRAINED_MODEL_ARCHIVE_LIST',
						    'TFCTRLForSequenceClassification',
						    'TFCTRLLMHeadModel',
						    'TFCTRLModel',
						    'TFCTRLPreTrainedModel',
						]


if TYPE_CHECKING:
						from .configuration_ctrl import CTRL_PRETRAINED_CONFIG_ARCHIVE_MAP, CTRLConfig
						from .tokenization_ctrl import CTRLTokenizer

						try:
												if not is_torch_available():
																		raise OptionalDependencyNotAvailable()
						except OptionalDependencyNotAvailable:
												pass
						else:
												from .modeling_ctrl import (
												    CTRL_PRETRAINED_MODEL_ARCHIVE_LIST,
												    CTRLForSequenceClassification,
												    CTRLLMHeadModel,
												    CTRLModel,
												    CTRLPreTrainedModel,
												)

						try:
												if not is_tf_available():
																		raise OptionalDependencyNotAvailable()
						except OptionalDependencyNotAvailable:
												pass
						else:
												from .modeling_tf_ctrl import (
												    TF_CTRL_PRETRAINED_MODEL_ARCHIVE_LIST,
												    TFCTRLForSequenceClassification,
												    TFCTRLLMHeadModel,
												    TFCTRLModel,
												    TFCTRLPreTrainedModel,
												)

else:
						import sys

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




"""simple docstring"""






import functools



def   a_						(					lowerCamelCase					,			lowerCamelCase       ):
				UpperCAmelCase__             =							len(lowerCamelCase       )
				UpperCAmelCase__             =							len(lowerCamelCase       )

				@functools.cache
				def min_distance(lowerCamelCase					,			lowerCamelCase       ) -> int:
								# if first word index is overflow - delete all from the second word
								if indexa >= len_worda:
												return len_worda - indexa
								# if second word index is overflow - delete all from the first word
								if indexa >= len_worda:
												return len_worda - indexa
								UpperCAmelCase__             =							int(worda[indexa] != worda[indexa]       )  # current letters not identical
								return min(
								    1 + min_distance(indexa + 1					,			lowerCamelCase       )					,			1 + min_distance(lowerCamelCase					,			indexa + 1       )					,			diff + min_distance(indexa + 1					,			indexa + 1       )					,			)

				return min_distance(0					,			0       )


if __name__ == "__main__":
						import doctest

						doctest.testmod()



