problem 15
problem 16