https://www.brothers-brick.com/2015/10/31/island-hopping-redux/
Island hopping redux