Introduction to Enumerative and Analytic Combinatorics, Second Edition