Combinatorial Algorithms by Edward M Reingold