"""simple docstring"""






from __future__ import annotations



def 						a_		(      lowerCamelCase      ,    lowerCamelCase ):
				UpperCAmelCase__   ,			UpperCAmelCase__    =							set(lowerCamelCase ), [start]

				while stack:
								UpperCAmelCase__    =							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


lowerCAmelCase__						:						Dict		  =			{
    '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'))




"""simple docstring"""






def 						a_		(      lowerCamelCase      ,    lowerCamelCase ):
				return x if y == 0 else greatest_common_divisor(lowerCamelCase      ,    x % y )



def 						a_		(      lowerCamelCase      ,    lowerCamelCase ):
				return (x * y) // greatest_common_divisor(lowerCamelCase      ,    lowerCamelCase )



def 						a_		(      lowerCamelCase = 2_0 ):
				UpperCAmelCase__    =							1
				for i in range(1      ,    n + 1 ):
								UpperCAmelCase__    =							lcm(lowerCamelCase      ,    lowerCamelCase )
				return g


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



