



"""simple docstring"""







def     UpperCamelCase_   (   lowerCAmelCase__				:    Optional[int]						)						->       str:

  """simple docstring"""




  return [
      {
          0: [1, 2],
          1: [0, 2],
          2: [0, 1, 3, 5],
          3: [2, 4],
          4: [3],
          5: [2, 6, 8],
          6: [5, 7],
          7: [6, 8],
          8: [5, 7],
      },
      {
          0: [6],
          1: [9],
          2: [4, 5],
          3: [4],
          4: [2, 3],
          5: [2],
          6: [0, 7],
          7: [6],
          8: [],
          9: [1],
      },
      {
          0: [4],
          1: [6],
          2: [],
          3: [5, 6, 7],
          4: [0, 6],
          5: [3, 8, 9],
          6: [1, 3, 4, 7],
          7: [3, 6, 8, 9],
          8: [5, 7],
          9: [5, 7],
      },
      {
          0: [1, 3],
          1: [0, 2, 4],
          2: [1, 3, 4],
          3: [0, 2, 4],
          4: [1, 2, 3],
      },
  ][index]

def     UpperCamelCase_   (   lowerCAmelCase__				:    dict[int, list[int]]						)						->       list[tuple[int, int]]:

  """simple docstring"""




  lowerCAmelCase_       :    List[Any]								=			0
  lowerCAmelCase_       :    str								=			len(lowerCAmelCase__						)  # No of vertices in graph
  lowerCAmelCase_       :    str								=			[0] * n
  lowerCAmelCase_       :    int								=			[False] * n

  def dfs(lowerCAmelCase__				:    int   ,       lowerCAmelCase__				:    Union[str, Any]   ,       lowerCAmelCase__				:    str   ,       lowerCAmelCase__				:    Any						):
    lowerCAmelCase_       :    Dict								=			True
    lowerCAmelCase_       :    Union[str, Any]								=			id_
    id_ += 1
    for to in graph[at]:
      if to == parent:
        pass
      elif not visited[to]:
        dfs(lowerCAmelCase__   ,       lowerCAmelCase__   ,       lowerCAmelCase__   ,       id_						)
        lowerCAmelCase_       :    List[str]								=			min(low[at]   ,       low[to]						)
        if id_ <= low[to]:
          bridges.append((at, to) if at < to else (to, at)						)
      else:
        # This edge is a back edge and cannot be a bridge
        lowerCAmelCase_       :    List[str]								=			min(low[at]   ,       low[to]						)

  lowerCAmelCase_       :    list[tuple[int, int]]								=			[]
  for i in range(lowerCAmelCase__						):
    if not visited[i]:
      dfs(lowerCAmelCase__   ,       -1   ,       lowerCAmelCase__   ,       id_						)
  return bridges


if __name__ == "__main__":
     import doctest

     doctest.testmod()










"""simple docstring"""







def     UpperCamelCase_   (   lowerCAmelCase__				:    list[int]   ,       lowerCAmelCase__				:    list[int]						)						->       None:

  """simple docstring"""




  lowerCAmelCase_       :    List[Any]								=			len(lowerCAmelCase__						)
  print('The following activities are selected:'						)

  # The first activity is always selected
  lowerCAmelCase_       :    str								=			0
  print(lowerCAmelCase__   ,       end=','						)

  # Consider rest of the activities
  for j in range(lowerCAmelCase__						):
    # If this activity has start time greater than
    # or equal to the finish time of previously
    # selected activity, then select it
    if start[j] >= finish[i]:
      print(lowerCAmelCase__   ,       end=','						)
      lowerCAmelCase_       :    Tuple								=			j


if __name__ == "__main__":
     import doctest

     doctest.testmod()

     lowercase__		:    List[str]				   =     [1, 3, 0, 5, 8, 5]
     lowercase__		:    Dict				   =     [2, 4, 6, 7, 9, 9]
     print_max_activities(start, finish)





