Source: https://rarnop.mit.edu/sites/default/files/Lecture6_ModifiedSOS.pdf