https://en.wikipedia.org/wiki/Topological_sorting
https://www.geeksforgeeks.org/topological-sorting/
https://www.youtube.com/watch?v=ddTC4Zovtbc