



"""simple docstring"""







from typing import TYPE_CHECKING

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


UpperCAmelCase:  Dict			     =				{
    """configuration_mobilenet_v1""": [
        """MOBILENET_V1_PRETRAINED_CONFIG_ARCHIVE_MAP""",
        """MobileNetV1Config""",
        """MobileNetV1OnnxConfig""",
    ],
}

try:
		if not is_vision_available():
				raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
		pass
else:
		UpperCAmelCase:  Tuple			     =				["""MobileNetV1FeatureExtractor"""]
		UpperCAmelCase:  Any			     =				["""MobileNetV1ImageProcessor"""]

try:
		if not is_torch_available():
				raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
		pass
else:
		UpperCAmelCase:  Optional[int]			     =				[
		    """MOBILENET_V1_PRETRAINED_MODEL_ARCHIVE_LIST""",
		    """MobileNetV1ForImageClassification""",
		    """MobileNetV1Model""",
		    """MobileNetV1PreTrainedModel""",
		    """load_tf_weights_in_mobilenet_v1""",
		]


if TYPE_CHECKING:
		from .configuration_mobilenet_va import (
		    MOBILENET_V1_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_V1_PRETRAINED_MODEL_ARCHIVE_LIST,
				    MobileNetVaForImageClassification,
				    MobileNetVaModel,
				    MobileNetVaPreTrainedModel,
				    load_tf_weights_in_mobilenet_va,
				)


else:
		import sys

		UpperCAmelCase:  Dict			     =				_LazyModule(__name__, globals()["""__file__"""], _import_structure, module_spec=__spec__)







"""simple docstring"""






def    A_ ( _lowerCAmelCase  :       str,  _lowerCAmelCase  :       str							):






     """simple docstring"""

     if len(_lowerCAmelCase							) < len(_lowerCAmelCase							):
          return levenshtein_distance(_lowerCAmelCase,  _lowerCAmelCase							)

     if len(_lowerCAmelCase							) == 0:
          return len(_lowerCAmelCase							)

     _a     						=					list(range(len(_lowerCAmelCase							) + 1							)							)

     for i, ca in enumerate(_lowerCAmelCase							):
          _a     						=					[i + 1]

          for j, ca in enumerate(_lowerCAmelCase							):
               # Calculate insertions, deletions and substitutions
               _a     						=					previous_row[j + 1] + 1
               _a     						=					current_row[j] + 1
               _a     						=					previous_row[j] + (ca != ca)

               # Get the minimum to append to the current row
               current_row.append(min(_lowerCAmelCase,  _lowerCAmelCase,  _lowerCAmelCase							)							)

          # Store the previous row
          _a     						=					current_row

     # Returns the last element (distance)
     return previous_row[-1]


if __name__ == "__main__":
   __snake_case												=							input('''Enter the first word:\n''').strip()
   __snake_case												=							input('''Enter the second word:\n''').strip()

   __snake_case												=							levenshtein_distance(first_word, second_word)
   print(f'Levenshtein distance between {first_word} and {second_word} is {result}')