Solution by Bob Kleemann
