Given the following graph: a) Provide a set of adjacency lists of valid movement through the graph. (5 pts) b) Provide an adjacency matrix for valid movement through the graph. (5 pts) c) Use Dijkstra's algorithm to find the shortest path from A to Z. For each step of the algorithm, provide the minimum cost from the source to each vertex, as well as the updated binary heap. (10 pts) d) Use Prim's algorithm to find the maximum spanning tree from the graph above. For each step of the algorithm, provide the current state of the spanning tree.