Solutions by Bruce Gray.