add problem 30 solution