Solution by Aubrey Quarcoo