


import functools
from typing import Any
def 			_a (      SCREAMING_SNAKE_CASE						,				SCREAMING_SNAKE_CASE     ):


		"""simple docstring"""




		if not isinstance(SCREAMING_SNAKE_CASE						,				SCREAMING_SNAKE_CASE     ) or len(SCREAMING_SNAKE_CASE     ) == 0:
				raise ValueError('''the string should be not empty string'''     )

		if not isinstance(SCREAMING_SNAKE_CASE						,				SCREAMING_SNAKE_CASE     ) or not all(
		    isinstance(SCREAMING_SNAKE_CASE						,				SCREAMING_SNAKE_CASE     ) and len(SCREAMING_SNAKE_CASE     ) > 0 for item in words     ):
				raise ValueError('''the words should be a list of non-empty strings'''     )

		# Build trie
		lowercase__            =      {}
		lowercase__            =      '''WORD_KEEPER'''

		for word in words:
				lowercase__            =      trie
				for c in word:
						if c not in trie_node:
								lowercase__            =      {}

						lowercase__            =      trie_node[c]

				lowercase__            =      True

		lowercase__            =      len(SCREAMING_SNAKE_CASE     )

		# Dynamic programming method
		@functools.cache
		def is_breakable(SCREAMING_SNAKE_CASE     ) -> bool:
				if index == len_string:
						return True

				lowercase__            =      trie
				for i in range(SCREAMING_SNAKE_CASE						,				SCREAMING_SNAKE_CASE     ):
						lowercase__            =      trie_node.get(string[i]						,				SCREAMING_SNAKE_CASE     )

						if trie_node is None:
								return False

						if trie_node.get(SCREAMING_SNAKE_CASE						,				SCREAMING_SNAKE_CASE     ) and is_breakable(i + 1     ):
								return True

				return False

		return is_breakable(0     )


if __name__ == "__main__":
			import doctest

			doctest.testmod()






from __future__ import annotations
def 			_a (      SCREAMING_SNAKE_CASE						,				SCREAMING_SNAKE_CASE     ):


		"""simple docstring"""




		lowercase__            =      0
		lowercase__            =      len(SCREAMING_SNAKE_CASE     ) - 1

		while i < j:
				if nums[i] + nums[j] == target:
						return [i, j]
				elif nums[i] + nums[j] < target:
						lowercase__            =      i + 1
				else:
						lowercase__            =      j - 1

		return []


if __name__ == "__main__":
			import doctest

			doctest.testmod()
			print(f"""{two_pointer([2, 7, 11, 15], 9) = }""")


