




def 	__A	(			__lowerCamelCase							,    __lowerCamelCase					)   -> List[str]:


					if len(str(SCREAMING_SNAKE_CASE__					)					) == 1 or len(str(SCREAMING_SNAKE_CASE__					)					) == 1:
										return a * b

					a		       =							max(len(str(SCREAMING_SNAKE_CASE__					)					)							,    len(str(SCREAMING_SNAKE_CASE__					)					)					)
					a		       =							ma // 2

					a		       =							divmod(SCREAMING_SNAKE_CASE__							,    10**ma					)
					a		       =							divmod(SCREAMING_SNAKE_CASE__							,    10**ma					)

					a		       =							karatsuba(SCREAMING_SNAKE_CASE__							,    SCREAMING_SNAKE_CASE__					)
					a		       =							karatsuba((aa + aa)							,    (ba + ba)					)
					a		       =							karatsuba(SCREAMING_SNAKE_CASE__							,    SCREAMING_SNAKE_CASE__					)

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





def 	__A	(			)   -> Optional[Any]:
					print(karatsuba(1_5463							,    2_3489					)					)


if __name__ == "__main__":
		main()







from itertools import combinations, product





def 	__A	(			__lowerCamelCase							,    __lowerCamelCase							,    __lowerCamelCase							,    __lowerCamelCase					)   -> bool:
	if xa == ya == 0 or xa == ya == 0:
		return False
	a		       =							xa * xa + ya * ya
	a		       =							xa * xa + ya * ya
	a		       =							(xa - xa) * (xa - xa) + (ya - ya) * (ya - ya)
	return (
	    a_square + b_square == c_square
	    or a_square + c_square == b_square
	    or b_square + c_square == a_square
	)





def 	__A	(			__lowerCamelCase = 50					)   -> int:
	return sum(
	    1
	    for pta, pta in combinations(product(range(limit + 1					)							,    repeat=2					)							,    2					)
	    if is_right(*__lowerCamelCase							,    *__lowerCamelCase					)					)


if __name__ == "__main__":
		print(F'{solution() = }')

