



def 	_A	(   _UpperCamelCase      ,					_UpperCamelCase			):
				if len(str(_UpperCamelCase			)			) == 1 or len(str(_UpperCamelCase			)			) == 1:
								return a * b

				_UpperCAmelCase						:  List[str]     					=	max(len(str(_UpperCamelCase			)			)      ,					len(str(_UpperCamelCase			)			)			)
				_UpperCAmelCase						:  Dict     					=	ma // 2

				_UpperCAmelCase					, _UpperCAmelCase						:  List[Any]     					=	divmod(_UpperCamelCase      ,					10**ma			)
				_UpperCAmelCase					, _UpperCAmelCase						:  str     					=	divmod(_UpperCamelCase      ,					10**ma			)

				_UpperCAmelCase						:  Tuple     					=	karatsuba(_UpperCamelCase      ,					_UpperCamelCase			)
				_UpperCAmelCase						:  Optional[Any]     					=	karatsuba((aa + aa)      ,					(ba + ba)			)
				_UpperCAmelCase						:  Union[str, Any]     					=	karatsuba(_UpperCamelCase      ,					_UpperCamelCase			)

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


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


if __name__ == "__main__":
					main()





UpperCAmelCase__			:   Optional[int]      			=    [0.4_85, 0.4_56, 0.4_06]
UpperCAmelCase__			:   Union[str, Any]      			=    [0.2_29, 0.2_24, 0.2_25]
UpperCAmelCase__			:   Union[str, Any]      			=    [0.5, 0.5, 0.5]
UpperCAmelCase__			:   Optional[Any]      			=    [0.5, 0.5, 0.5]
UpperCAmelCase__			:   str      			=    [0.48_14_54_66, 0.4_57_82_75, 0.40_82_10_73]
UpperCAmelCase__			:   Dict      			=    [0.26_86_29_54, 0.26_13_02_58, 0.27_57_77_11]
