Solution by Peter Campbell Smith