This is the final submission for the HW1.