Source: https://www.dil.univ-mrs.fr/~regis/INTRO-INFO/examen-juin-07.pdf