Topological Sorting Problem