
def 		SCREAMING_SNAKE_CASE__      ( __lowerCAmelCase      ,						__lowerCAmelCase							):
    if len(str(_lowerCAmelCase							)							) == 1 or len(str(_lowerCAmelCase							)							) == 1:
        return a * b

    snake_case__  =			max(len(str(_lowerCAmelCase							)							)      ,						len(str(_lowerCAmelCase							)							)							)
    snake_case__  =			ma // 2

    snake_case__  ,   snake_case__  =			divmod(_lowerCAmelCase      ,						10**ma							)
    snake_case__  ,   snake_case__  =			divmod(_lowerCAmelCase      ,						10**ma							)

    snake_case__  =			karatsuba(_lowerCAmelCase      ,						_lowerCAmelCase							)
    snake_case__  =			karatsuba((aa + aa)      ,						(ba + ba)							)
    snake_case__  =			karatsuba(_lowerCAmelCase      ,						_lowerCAmelCase							)

    return (z * 10 ** (2 * ma)) + ((y - z - x) * 10 ** (ma)) + (x)





def 		SCREAMING_SNAKE_CASE__      ( ):
    print(karatsuba(15_463      ,						23_489							)							)


if __name__ == "__main__":
     main()





def 		SCREAMING_SNAKE_CASE__      ( __lowerCAmelCase							):
    if len(__lowerCAmelCase							) > 1:
        snake_case__  =			len(__lowerCAmelCase							) // 2  # Finds the middle of the array
        snake_case__  =			arr[
            :middle_length
        ]  # Creates an array of the elements in the first half.
        snake_case__  =			arr[
            middle_length:
        ]  # Creates an array of the elements in the second half.
        snake_case__  =			len(__lowerCAmelCase							)
        snake_case__  =			len(__lowerCAmelCase							)
        merge(__lowerCAmelCase							)  # Starts sorting the left.
        merge(__lowerCAmelCase							)  # Starts sorting the right
        snake_case__  =			0  # Left Counter
        snake_case__  =			0  # Right Counter
        snake_case__  =			0  # Position Counter
        while (
            left_index < left_size and right_index < right_size
        ):  # Runs until the lowers size of the left and right are sorted.
            if left_array[left_index] < right_array[right_index]:
                snake_case__  =			left_array[left_index]
                left_index += 1
            else:
                snake_case__  =			right_array[right_index]
                right_index += 1
            index += 1
        while (
            left_index < left_size
        ):  # Adds the left over elements in the left half of the array
            snake_case__  =			left_array[left_index]
            left_index += 1
            index += 1
        while (
            right_index < right_size
        ):  # Adds the left over elements in the right half of the array
            snake_case__  =			right_array[right_index]
            right_index += 1
            index += 1
    return arr


if __name__ == "__main__":
     import doctest

     doctest.testmod()



