Solution by Ian Rifkin.