Write a Lisp program that generates a list containing all legal successor states for any state in the Missionaries and Cannibals problem. Your program should be invoked by the function call: (mac-next state) where state is of the form (m,n,b), with m representing the number of missionaries (0-3) on the left bank, n representing the number of cannibals (0-3) on the left bank, and b representing whether the boat is on the right side (r) or the left side (I) of the river. For example: (mac-next (3