Applied combinatorics with problem solving - Jackson, Bradley W. (Addison-Wesley, 1990)