





def      lowerCAmelCase_ (       __a		)     ->		bool:







  """simple docstring"""





  lowerCamelCase__:      set[int]			  =set()
  # To detect a back edge, keep track of vertices currently in the recursion stack
  lowerCamelCase__:      set[int]			  =set()
  return any(
      node not in visited and depth_first_search(__a	,    __a	,    __a	,    __a		)
      for node in graph		)





def      lowerCAmelCase_ (       __a	,    __a	,    __a	,    __a		)     ->		bool:







  """simple docstring"""





  visited.add(__a		)
  rec_stk.add(__a		)

  for node in graph[vertex]:
    if node not in visited:
      if depth_first_search(__a	,    __a	,    __a	,    __a		):
        return True
    elif node in rec_stk:
      return True

    # The node needs to be removed from recursion stack before function ends
  rec_stk.remove(__a		)
  return False


if __name__ == "__main__":
     from doctest import testmod

     testmod()








from math import ceil, sqrt





def      lowerCAmelCase_ (       __a = 1000000		)     ->		int:







  """simple docstring"""





  lowerCamelCase__:      Optional[int]			  =0

  for outer_width in range(3	,    (limit // 4) + 2		):
    if outer_width**2 > limit:
      lowerCamelCase__:      Dict			  =max(ceil(sqrt(outer_width**2 - limit		)		)	,    1		)
    else:
      lowerCamelCase__:      str			  =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() = }')

