Updated solution for problem 31