How to Count: An Introduction to Combinatorics and Its Applications