Discrete mathematics : a unified approach