Harvard's cs50x problem 2.1