Puzzle solution.