Source: https://www.cs.ou.edu/~fagg/classes/cs1323/exams/exam1C_sol.pdf