Chapter 4 - Backtracking and Tree Traversal Algorithms