DISCRETE MATHEMATICS - LIPSCHUTZ, SEYMOUR