'''simple docstring'''





def 						__A							(     UpperCAmelCase     ,UpperCAmelCase					)     ->			float:




						'''simple docstring'''
						return base * power(UpperCAmelCase     ,(exponent - 1)					) if exponent else 1


if __name__ == "__main__":
			print("""Raise base to the power of exponent using recursion...""")
			lowerCAmelCase_	:		List[Any]			=     int(input("""Enter the base: """).strip())
			lowerCAmelCase_	:		Any			=     int(input("""Enter the exponent: """).strip())
			lowerCAmelCase_	:		Union[str, Any]			=     power(base, abs(exponent))
			if exponent < 0:  # power() does not properly deal w/ negative exponents
						lowerCAmelCase_	:		Union[str, Any]			=     1 / result
			print(f"""{base} to the power of {exponent} is {result}""")



'''simple docstring'''





def 						__A							(     UpperCAmelCase     ,UpperCAmelCase     ,UpperCAmelCase=False					)     ->			Optional[int]:




						'''simple docstring'''

						if isinstance(UpperCAmelCase     ,UpperCAmelCase					) and isinstance(UpperCAmelCase     ,UpperCAmelCase					):
												_UpperCamelCase			:			Any   			=						len(set_a.intersection(UpperCAmelCase					)					)

												if alternative_union:
																		_UpperCamelCase			:			List[str]   			=						len(UpperCAmelCase					) + len(UpperCAmelCase					)
												else:
																		_UpperCamelCase			:			List[str]   			=						len(set_a.union(UpperCAmelCase					)					)

												return intersection / union

						if isinstance(UpperCAmelCase     ,(list, tuple)					) and isinstance(UpperCAmelCase     ,(list, tuple)					):
												_UpperCamelCase			:			List[Any]   			=						[element for element in set_a if element in set_b]

												if alternative_union:
																		_UpperCamelCase			:			str   			=						len(UpperCAmelCase					) + len(UpperCAmelCase					)
																		return len(UpperCAmelCase					) / union
												else:
																		_UpperCamelCase			:			int   			=						set_a + [element for element in set_b if element not in set_a]
																		return len(UpperCAmelCase					) / len(UpperCAmelCase					)

												return len(UpperCAmelCase					) / len(UpperCAmelCase					)
						return None


if __name__ == "__main__":
			lowerCAmelCase_	:		List[str]			=     {"""a""", """b""", """c""", """d""", """e"""}
			lowerCAmelCase_	:		Dict			=     {"""c""", """d""", """e""", """f""", """h""", """i"""}
			print(jaccard_similarity(set_a, set_b))


