


from __future__ import annotations





def 						_lowerCAmelCase							(     _lowerCAmelCase   ,						_lowerCAmelCase			)    ->						set[str]:


						'''simple docstring'''






						__snake_case		,       __snake_case				=		set(_lowerCAmelCase			), [start]

						while stack:
												__snake_case				=		stack.pop()
												explored.add(_lowerCAmelCase			)
												# Differences from BFS:
												# 1) pop last element instead of first one
												# 2) add adjacent elements to stack without exploring them
												for adj in reversed(graph[v]			):
																		if adj not in explored:
																								stack.append(_lowerCAmelCase			)
						return explored


A				:       Optional[Any]      =  {
    'A': ['B', 'C', 'D'],
    'B': ['A', 'D', 'E'],
    'C': ['A', 'F'],
    'D': ['B', 'D'],
    'E': ['B', 'F'],
    'F': ['C', 'E', 'G'],
    'G': ['F'],
}

if __name__ == "__main__":
	import doctest

	doctest.testmod()
	print(depth_first_search(G, 'A'))









def 						_lowerCAmelCase							(     _lowerCAmelCase = 100			)    ->						int:


						'''simple docstring'''






						__snake_case				=		n * (n + 1) * (2 * n + 1) / 6
						__snake_case				=		(n * (n + 1) / 2) ** 2
						return int(square_of_sum - sum_of_squares			)


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





