Source: https://math.cmaisonneuve.qc.ca/sites/math.cmaisonneuve.qc.ca/files/combinatoire_0.pdf