Puzzle solver.