Combinatorial methods with computer applications - Gross, Jonathan L. (Discrete mathematics and its applications, 2008)