


def 		lowercase_  (     _UpperCamelCase  ):


			'''simple docstring'''







			__lowercase 					=   set()
			# To detect a back edge, keep track of vertices currently in the recursion stack
			__lowercase 					=   set()
			return any(
			    node not in visited and depth_first_search(_UpperCamelCase       ,			_UpperCamelCase       ,			_UpperCamelCase       ,			_UpperCamelCase  )
			    for node in graph  )


def 		lowercase_  (     _UpperCamelCase       ,			_UpperCamelCase       ,			_UpperCamelCase       ,			_UpperCamelCase  ):


			'''simple docstring'''







			visited.add(_UpperCamelCase  )
			rec_stk.add(_UpperCamelCase  )

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

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


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

	testmod()






from itertools import count


def 		lowercase_  (     _UpperCamelCase = 50  ):


			'''simple docstring'''







			__lowercase 					=   [1] * min_block_length

			for n in count(_UpperCamelCase  ):
						fill_count_functions.append(1  )

						for block_length in range(_UpperCamelCase       ,			n + 1  ):
									for block_start in range(n - block_length  ):
												fill_count_functions[n] += fill_count_functions[
												    n - block_start - block_length - 1
												]

									fill_count_functions[n] += 1

						if fill_count_functions[n] > 1_00_00_00:
									break

			return n


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


