http://www.fullstackprep.dev/articles/dsa/datastructure/topological-sorting