




'''simple docstring'''



from __future__ import annotations




def   lowercase__(			__UpperCamelCase:					dict      ,__UpperCamelCase:					str    ):

      """simple docstring"""






      SCREAMING_SNAKE_CASE					,    SCREAMING_SNAKE_CASE   :      Any    					=						set(__UpperCamelCase    ), [start]

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


UpperCamelCase_    	=				{
    "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   lowercase__(			__UpperCamelCase:					int = 1_00_00_00    ):

      """simple docstring"""






      SCREAMING_SNAKE_CASE   :      Tuple    					=						[i - 1 for i in range(limit + 1    )]

      for i in range(2      ,limit + 1    ):
            if phi[i] == i - 1:
                  for j in range(2 * i      ,limit + 1      ,__UpperCamelCase    ):
                        phi[j] -= phi[j] // i

      return sum(phi[2 : limit + 1]    )


if __name__ == "__main__":
      print(solution())


