solution to cmu 15-418 2018