import functools



def lowerCamelCase    (  SCREAMING_SNAKE_CASE    ,     SCREAMING_SNAKE_CASE      ):
    '''simple docstring'''







    __UpperCamelCase	:int         =						len(UpperCamelCase__      )
    __UpperCamelCase	:str         =						len(UpperCamelCase__      )

    @functools.cache
    def min_distance(SCREAMING_SNAKE_CASE    ,     SCREAMING_SNAKE_CASE      ) -> 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	:Tuple         =						int(worda[indexa] != worda[indexa]      )  # current letters not identical
        return min(
            1 + min_distance(indexa + 1    ,     UpperCamelCase__      )    ,     1 + min_distance(UpperCamelCase__    ,     indexa + 1      )    ,     diff + min_distance(indexa + 1    ,     indexa + 1      )    ,     )

    return min_distance(0    ,     0      )


if __name__ == "__main__":
    import doctest

    doctest.testmod()












from ..utils import DummyObject, requires_backends





class 				a			(      metaclass=__lowercase			):
				SCREAMING_SNAKE_CASE__     :   List[Any]		      =     ['''torch''', '''scipy''']






				def __init__(  self			, *_lowerCAmelCase			, **_lowerCAmelCase					):

										"""simple docstring"""




										requires_backends(self			, ['''torch''', '''scipy''']					)






				@classmethod
				def 			snake_case_    (  cls			, *_lowerCAmelCase			, **_lowerCAmelCase					):

										"""simple docstring"""




										requires_backends(cls			, ['''torch''', '''scipy''']					)






				@classmethod
				def 			snake_case_    (  cls			, *_lowerCAmelCase			, **_lowerCAmelCase					):

										"""simple docstring"""




										requires_backends(cls			, ['''torch''', '''scipy''']					)



