problem 30 solution