Puzzle 15 solver.