Combinatorial Algorithms by Donald L. Kreher & Douglas R. Stinson