Solution by Niels van Dijke.