

'''simple docstring'''
from __future__ import annotations


def 	_lowerCAmelCase (						_UpperCamelCase						:					dict							,			_UpperCamelCase						:					str    )				->      set[str]:
     """simple docstring"""




     _SCREAMING_SNAKE_CASE   ,						_SCREAMING_SNAKE_CASE							   =set(_UpperCamelCase    ), [start]

     while stack:
          _SCREAMING_SNAKE_CASE							   =stack.pop()
          explored.add(_UpperCamelCase    )
          # 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(_UpperCamelCase    )
     return explored


lowerCamelCase			:				Optional[int] 			=					{
    "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'''
from ..utils import DummyObject, requires_backends







class 							A__   (	metaclass=A__  ):
  A__					=    ['note_seq']





  def __init__(		self				:     List[str]							, *_a				:     Any							, **_a				:     Dict			)     ->   Optional[Any]:





       '''simple docstring'''






       requires_backends(self							, ['note_seq']			)





  @classmethod
  def 						A  (		cls				:     Any							, *_a				:     str							, **_a				:     List[Any]			)     ->   List[str]:





       '''simple docstring'''






       requires_backends(cls							, ['note_seq']			)





  @classmethod
  def 						A  (		cls				:     int							, *_a				:     Optional[Any]							, **_a				:     Optional[int]			)     ->   Tuple:





       '''simple docstring'''






       requires_backends(cls							, ['note_seq']			)
