Source: https://www.rishivalley.org/s/ICSE-2020-Sem2-HW.pdf