An Introduction to Discrete Mathematics, Second Edition