Discrete and combinatorial mathematics - an applied introduction (3. ed.)