





import functools
from typing import Any



def 	_a						(   UpperCAmelCase      ,  UpperCAmelCase					)    ->    bool:







   """simple docstring"""

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

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

   # Build trie
   lowerCamelCase__       :						dict[str, Any]        =							{}
   lowerCamelCase__       :						Union[str, Any]        =							'''WORD_KEEPER'''

   for word in words:
      lowerCamelCase__       :						List[str]        =							trie
      for c in word:
         if c not in trie_node:
            lowerCamelCase__       :						Union[str, Any]        =							{}

         lowerCamelCase__       :						str        =							trie_node[c]

      lowerCamelCase__       :						List[Any]        =							True

   lowerCamelCase__       :						Tuple        =							len(UpperCAmelCase					)

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

      lowerCamelCase__       :						Union[str, Any]        =							trie
      for i in range(UpperCAmelCase      ,  UpperCAmelCase					):
         lowerCamelCase__       :						List[Any]        =							trie_node.get(string[i]      ,  UpperCAmelCase					)

         if trie_node is None:
            return False

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

      return False

   return is_breakable(0					)


if __name__ == "__main__":
       import doctest

       doctest.testmod()










from math import ceil, sqrt



def 	_a						(   UpperCAmelCase = 1000000					)    ->    int:







   """simple docstring"""
   lowerCamelCase__       :						Any        =							0

   for outer_width in range(3      ,  (limit // 4) + 2					):
      if outer_width**2 > limit:
         lowerCamelCase__       :						List[Any]        =							max(ceil(sqrt(outer_width**2 - limit					)					)      ,  1					)
      else:
         lowerCamelCase__       :						Union[str, Any]        =							1
      if (outer_width - hole_width_lower_bound) % 2:
         hole_width_lower_bound += 1

      answer += (outer_width - hole_width_lower_bound - 2) // 2 + 1

   return answer


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



