Probability and computing: Randomised algorithms and probabilistic analysis - Mitzenmacher, Michael (Cambridge University Press, 2005)