Combinatorial methods with computer applications - Gross, Jonathan L (2008)