Discrete Structures for Computer Science: Counting ...