Discrete mathematics for computing. (2009)