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