






def   SCREAMING_SNAKE_CASE       (				snake_case_      :							int = 10**12     ):
	snake_case__				:   List[Any]     =						1
	snake_case__				:   Any     =						0

	snake_case__				:   Dict     =						1
	snake_case__				:   Dict     =						1

	while numerator <= 2 * min_total - 1:
		prev_numerator += 2 * numerator
		numerator += 2 * prev_numerator

		prev_denominator += 2 * denominator
		denominator += 2 * prev_denominator

	return (denominator + 1) // 2


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











def   SCREAMING_SNAKE_CASE       (				snake_case_      :							str     ):
	snake_case__				:   Any     =						[0] * len(snake_case_     )

	for i in range(1  ,						len(snake_case_     )     ):
		# use last results for better performance - dynamic programming
		snake_case__				:   Union[str, Any]     =						prefix_result[i - 1]
		while j > 0 and input_string[i] != input_string[j]:
			snake_case__				:   str     =						prefix_result[j - 1]

		if input_string[i] == input_string[j]:
			j += 1
		snake_case__				:   int     =						j

	return prefix_result







def   SCREAMING_SNAKE_CASE       (				snake_case_      :							str     ):
	return max(prefix_function(snake_case_     )     )


if __name__ == "__main__":
	import doctest

	doctest.testmod()



