





__lowerCamelCase       :     Optional[Any]   =     tuple[float, float, float]
__lowerCamelCase       :     int   =     tuple[float, float, float]



def 		A_				(     _lowerCAmelCase							,   _lowerCAmelCase     )						-> Vectorad:
 UpperCamelCase	:					Optional[Any]       	=   end_pointa[0] - end_pointa[0]
 UpperCamelCase	:					Optional[int]       	=   end_pointa[1] - end_pointa[1]
 UpperCamelCase	:					Tuple       	=   end_pointa[2] - end_pointa[2]
 return (x, y, z)



def 		A_				(     _lowerCAmelCase							,   _lowerCAmelCase     )						-> Vectorad:
 UpperCamelCase	:					Union[str, Any]       	=   ab[1] * ac[2] - ab[2] * ac[1]  # *i
 UpperCamelCase	:					Tuple       	=   (ab[0] * ac[2] - ab[2] * ac[0]) * -1  # *j
 UpperCamelCase	:					Any       	=   ab[0] * ac[1] - ab[1] * ac[0]  # *k
 return (x, y, z)



def 		A_				(     _lowerCAmelCase							,   _lowerCAmelCase     )						-> bool:
 return tuple(round(_lowerCAmelCase							,   _lowerCAmelCase     ) for x in vector     ) == (0, 0, 0)



def 		A_				(     _lowerCAmelCase							,   _lowerCAmelCase							,   _lowerCAmelCase							,   _lowerCAmelCase = 10     )						-> bool:
 UpperCamelCase	:					Tuple       	=   create_vector(_lowerCAmelCase							,   _lowerCAmelCase     )
 UpperCamelCase	:					List[str]       	=   create_vector(_lowerCAmelCase							,   _lowerCAmelCase     )
 return is_zero_vector(get_ad_vectors_cross(_lowerCAmelCase							,   _lowerCAmelCase     )							,   _lowerCAmelCase     )







import functools



def 		A_				(     _lowerCAmelCase							,   _lowerCAmelCase     )						-> int:
 UpperCamelCase	:					Optional[int]       	=   len(_lowerCAmelCase     )
 UpperCamelCase	:					List[str]       	=   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	:					Union[str, Any]       	=   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()
