problem 23
problem 24