Discrete and combinatorial mathematics - Ralph P Grimaldi (Addison-Wesley, 1994)