Solution by Alex Wilson.