Updated puzzle 2 from John.