Source: http://ccf.ee.ntu.edu.tw/~yen/courses/toc14/final-sol.pdf