Solution by Benjamin Andre.