Source: https://web.cs.hacettepe.edu.tr/~ilyas/Courses/BBM401/lec02-FiniteAutomata.pdf