Solution by Robert Ransbottom.