problem 19
problem 18