1. Suppose we want to add an extra operation, deunion, which undoes the last union operation that has not been already undone.
a. Show that if we do union-by-height and finds without path compression, then deunion is easy, and a sequence of M union, find, and deunion operations takes O(M log N) time.
b. Why does path compression make deunion hard?
c. Show how to implement all three operations so that the sequence of M operations takes O(M log N/log log N) time.