Enumerative Combinatorics: Volume 1 - Richard P. Stanley (2012)