Solutions by Dan Friedman.