07-05 Puzzles and Algorithms