


def 	__lowerCamelCase						(							lowerCamelCase__		:						str      ):





			'''simple docstring'''




			lowerCamelCase    		=  [0] * len(lowerCamelCase__      )

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

						if input_string[i] == input_string[j]:
									j += 1
						lowerCamelCase    		=  j

			return prefix_result






def 	__lowerCamelCase						(							lowerCamelCase__		:						str      ):





			'''simple docstring'''




			return max(prefix_function(lowerCamelCase__      )      )


if __name__ == "__main__":
		import doctest

		doctest.testmod()





def 	__lowerCamelCase						(							lowerCamelCase__		:						int      ):





			'''simple docstring'''




			lowerCamelCase    		=  (1 + 24 * n) ** 0.5
			return ((1 + root) / 6) % 1 == 0






def 	__lowerCamelCase						(							lowerCamelCase__		:						int = 5000      ):





			'''simple docstring'''




			lowerCamelCase    		=  [(i * (3 * i - 1)) // 2 for i in range(1  ,							lowerCamelCase__      )]
			for i, pentagonal_i in enumerate(lowerCamelCase__      ):
						for j in range(lowerCamelCase__  ,							len(lowerCamelCase__      )      ):
									lowerCamelCase    		=  pentagonal_nums[j]
									lowerCamelCase    		=  pentagonal_i + pentagonal_j
									lowerCamelCase    		=  pentagonal_j - pentagonal_i
									if is_pentagonal(lowerCamelCase__      ) and is_pentagonal(lowerCamelCase__      ):
												return b

			return -1


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

