




'''simple docstring'''



def    lowercase__(       __UpperCamelCase: dict  ):

      """simple docstring"""






      SCREAMING_SNAKE_CASE					:	List[str]   =		set()
      # edges = list of graph's edges
      SCREAMING_SNAKE_CASE					:	Optional[int]   =		get_edges(snake_case_  )

      # While there are still elements in edges list, take an arbitrary edge
      # (from_node, to_node) and add his extremity to chosen_vertices and then
      # remove all arcs adjacent to the from_node and to_node
      while edges:
            SCREAMING_SNAKE_CASE					:	str   =		edges.pop()
            chosen_vertices.add(snake_case_  )
            chosen_vertices.add(snake_case_  )
            for edge in edges.copy():
                  if from_node in edge or to_node in edge:
                        edges.discard(snake_case_  )
      return chosen_vertices




def    lowercase__(       __UpperCamelCase: dict  ):

      """simple docstring"""






      SCREAMING_SNAKE_CASE					:	Tuple   =		set()
      for from_node, to_nodes in graph.items():
            for to_node in to_nodes:
                  edges.add((from_node, to_node)  )
      return edges


if __name__ == "__main__":
      import doctest

      doctest.testmod()

      # graph = {0: [1, 3], 1: [0, 3], 2: [0, 3, 4], 3: [0, 1, 2], 4: [2, 3]}
      # print(f"Matching vertex cover:\n{matching_min_vertex_cover(graph)}")









"""simple docstring"""



def 		__lowercase     (   snake_case_  :  int						)   ->int:



    '''simple docstring'''







    assert (
        isinstance(snake_case_				,snake_case_						) and number_of_steps > 0
    ), F"""number_of_steps needs to be positive integer, your input {number_of_steps}"""
    if number_of_steps == 1:
        return 1
    __A ,       __A    :						List[Any]						 =     1, 1
    for _ in range(number_of_steps - 1						):
        __A ,       __A    :						List[str]						 =     current + previous, current
    return current


if __name__ == "__main__":
       import doctest

       doctest.testmod()




