add topo sort DFS