recursive solution to problem 2