Solutions by Michael Hamlin.