Solution by Michael Schaap