Source: https://ronan.terpereau.perso.math.cnrs.fr/enseignement/sujets_M1_2020-2021.pdf