(setf G1 '( (A B 2) (B C 10) (A F 4) (A D 3) (B D 13) (B E 20) (C E 11) (D E 14) (D F 16) (D G 12) (E G 13) (E J 5) (F G 9) (F H 26) (F I 33) (G I 6) (G J 17) (H I 15) (I J 28) ) ) (min_spanning_tree G1) => ( (A B 2) (A D 3) (A F 4) (F G 9) (G I 6) (B C 10) (C E 11) (E J 5) (I H 15) 65) (setf G2 '( (A B 2) (B C 10) (A F 54) (A D 3) (B D 13) (B E 20) (C E 11) (D E 14) (D F 16) (D G 12) (E G 13) (E J 5) (F G 9) (F H 26) (F I 33) (G I 6) (G J 17) (H I 15) (I J 28) ) ) (min_spanning_tree G2) => ( (A B 2) (A D 3) (B C 10) (C E 11) (E J 5) (D G 12) (G I 6) (G F 9) (I H 15) 73) Note: The graph is NOT directed. So an edge from A to B implies an edge from B to A with the same cost. So (A B 2) should mean "there is an edge BETWEEN A and B with cost 2". Also, run your algorithm on the following graph and report the result along with your report. (setf G3 '((A C 3) (A B 3) (T A 2) (U A 4) (T B 2) (B C 2) (B D 15) (C D 18) (D U 2))) Turn in * Lisp source code (Please also inline comments that would help me understand your solution.) * Run your algorithm on graph input G1, G2 and G3 and turn in the output (No trace necessary) * No late submissions on this project.